这里是一个更好,可能更快的版本,我只是发现了自己,它支持utf-8多字节字符。
以我的经验正则表达式函数在php中很慢,所以这里是一个基于字符串操作的函数。
function replace_first_word($text,$format='{L}'){
//*** UTF-8 replace first letter of every word ***
//split words
$words = explode(' ', $text);
//pick up each word
foreach($words as &$word){
//find out first letter of word
$first = substr($word, 0,1);
//remove first letter from word
$word = substr($word,1);
//replace first letter with formatted letter
$first = str_replace('{L}',$first,$format);
//add replaced letter to word
$word = $first.$word;
}
//glue words back together and return them
return implode(' ',$words);
}
也PHP6出来之前,记得要在php.ini这两个变量设置为更好地支持UTF-8
mbstring.func_overload "7"
mbstring.internal_encoding "UTF-8"