【发布时间】:2012-04-25 22:42:24
【问题描述】:
我想将字符串规范化(因此规范化)为名称的正常形式:
- 名称的第一个字母为大写
现在的困难在于使用第二名和第三名遵循此规则。
我的方法:
public function namilize($string)
{
$strings = explode(' ', $string);
foreach ($strings as $string) {
$string = ucfirst(strtolower($string));
}
$string = implode(' ', $strings);
return $string;
}
不知何故
$string = ucfirst(strtolower($string));
失败。
我需要纠正什么? 有没有更好的办法?
问候
编辑:
嗨,
感谢大家提供的所有 cmets 和答案。 我发现了另一种“现代”方法:
public function namilize($string)
{
$string = mb_convert_case($string, MB_CASE_TITLE, mb_detect_encoding($string));
}
当我现在为 Mc 和 O 添加一些正则表达式时,它会是完整的:)
【问题讨论】:
-
我完全不明白你为什么要炸毁
$string。 -
你打算如何处理像 McVeigh 这样的名字?