PHP将括号中的unicode字符串大写
我想大写每个单词,即使它在任何类型的括号中()[]{}。它还应该大写unicode字符 例如:PHP将括号中的unicode字符串大写,php,Php,我想大写每个单词,即使它在任何类型的括号中()[]{}。它还应该大写unicode字符 例如: ti si želva (čestitke) 应该产生 Ti Si Želva (Čestitke) 我使用这个函数很长时间了 function ucwords2($str) { $str = strtolower($str); $str = preg_replace('/(?<![a-z]\')\b[a-z]/e', 'strtoupper(\'$0\')', $str);
ti si želva (čestitke)
应该产生
Ti Si Želva (Čestitke)
我使用这个函数很长时间了
function ucwords2($str)
{
$str = strtolower($str);
$str = preg_replace('/(?<![a-z]\')\b[a-z]/e', 'strtoupper(\'$0\')', $str);
return $str;
}
函数ucwords2($str)
{
$str=strtolower($str);
$str=preg_replace('/(?以下是对我有效的方法:
$txt='ti si želva (čestitke)';
echo mb_convert_case($txt,MB_CASE_TITLE,'utf-8');
明白了吗?我认为isLower()函数支持unicode,因此我认为这是检查字符的更好方法。不知道如何在regexp中执行此操作。尝试以下操作:
function to_up($txt){
$up=mb_convert_case($txt,MB_CASE_TITLE,'utf-8');
return strtr($up,
array(
"'S"=>"'s",
"'D"=>"'d",
"'L"=>"'l"
)
);
}
$txt="john, it's all your fault!";
echo to_up($txt);
请注意,您可以在数组中添加任何您想要的内容…回答得很好。一般来说,切换到Unicode意味着将文件保存为UTF-8,使用mb_*等价的字符串函数,并将u
标志添加到正则表达式中。这正是我所需要的。但这是一个问题。它还将“或”.So后面的字母大写它的“变成”它的“有任何解决方案与mb_ereg__替换?