我使用PHP將表單條目插入MySQL數據庫。有時用戶輸入全部大寫字母。有什麼方法可以改變它,只有首字母大寫? ucwords(strtolower($word))
不適合我,因爲如果它沒有被大寫,我不想將第一個字母大寫。PHP刪除全部大寫
我主要關心的是人們提交姓時。大多數人正確地提交它,但有些提交全部大寫。如果它全部大寫,它應該與ucwords(strtolower($word))
一樣工作,但如果有人提交他們的名字爲De la Rosa,我不希望它更改爲De La Rosa。
我使用PHP將表單條目插入MySQL數據庫。有時用戶輸入全部大寫字母。有什麼方法可以改變它,只有首字母大寫? ucwords(strtolower($word))
不適合我,因爲如果它沒有被大寫,我不想將第一個字母大寫。PHP刪除全部大寫
我主要關心的是人們提交姓時。大多數人正確地提交它,但有些提交全部大寫。如果它全部大寫,它應該與ucwords(strtolower($word))
一樣工作,但如果有人提交他們的名字爲De la Rosa,我不希望它更改爲De La Rosa。
<?php
function ucwordsreplace($matches) {
return ucwords(strtolower($matches[0]));
}
$original = "some UPPERCASE words GO HERE";
$fixed = preg_replace_callback('/\b[A-Z]+\b/', "ucwordsreplace", $original);
echo $fixed; // some Uppercase words Go Here
正則表達式匹配僅是完全大寫(任何數量的在每一側一個字邊界大寫字母),然後通過每個這些所定義的函數,該函數返回一個替代文本僅與第一話字母大寫。
如果你想要防止像UPPERCA $ E這樣的事情,那麼你可以添加其他符號的正則表達式,甚至只匹配所有非小寫字符(使用[^a-z]
而不是[A-Z]
)。
我想你表示的功能是正確的..
但是,什麼是您的具體要求..
在示例以下爲ucwords
<?php
$foo = 'hello world!';
$foo = ucwords($foo); // Hello World!
$bar = 'HELLO WORLD!';
$bar = ucwords($bar); // HELLO WORLD!
$bar = ucwords(strtolower($bar)); // Hello World!
?>
否則,如果u想的使用只有第一個是大寫字母,而不是字符串 的每個第一個字符都是大寫,然後嘗試ucfirst()函數。
之前,我張貼布賴恩更新的問題和DAV回答了這個問題! – Vijay 2010-02-24 05:24:43
怎麼樣時,它應該是大寫的例子,當它不應該是 – Jayrox 2010-02-24 05:05:30