我正在寻找一种方法来大写字符串的第一个字母/ s,包括名称用连字符连接的地方,例如adam smith-jones需要是Adam Smith-Jones.
ucwords()(或者,ucfirst()如果我将它们分成名字,姓氏)只有Adam Smith-jones
小智 28
$string = implode('-', array_map('ucfirst', explode('-', $string)));
Run Code Online (Sandbox Code Playgroud)
您如何看待以下代码?
mb_convert_case(mb_strtolower($value), MB_CASE_TITLE, "UTF-8");
Run Code Online (Sandbox Code Playgroud)
请注意,这也处理重音字符(对于某些语言如法语有用).
这个可以吗 ?
function to_upper($name)
{
$name=ucwords($name);
$arr=explode('-', $name);
$name=array();
foreach($arr as $v)
{
$name[]=ucfirst($v);
}
$name=implode('-', $name);
return $name;
}
echo to_upper("adam smith-jones");
Run Code Online (Sandbox Code Playgroud)