我有一段正在苦苦挣扎的代码。我仍处于第一步,因此很可能是由于一些愚蠢的错误造成的。 我想将每个单词的第一个字符变成大写,但由于某种原因,它不起作用,我无法弄清楚。
$split = explode(" ",$string);
foreach ($split as $word) {
if (ord($word[0]) >= 97 & ord($word[0]) <= 122){
$word[0] = chr(ord($word[0]) - 32);
}}
return $string;
}
答案 0 :(得分:3)
您应该对此有所不同。
让我们首先创建拆分:
$words = explode(' ', $words_string);
现在让我们遍历这些单词,并使用$key
参数记住它们的索引。
foreach($words as $index => $word) { //So we remember the key in the array using $k => $v
$words[$index] = ucfirst($word); //This will uppercase the first letter.
}
答案 1 :(得分:0)
我链接的问题中解释了其不起作用的原因。
但是,根据您的情况,解决方案要简单得多。如果您使用多字节字符串,则只能使用ucwords()函数或将MB_CASE_TITLE
与mb_convert_case()一起使用。
答案 2 :(得分:0)
PHP提供了内置功能,可帮助您将每个单词的第一个字符转换为字符串的大写形式,而不会发生爆炸和迭代。
style.scss
编辑:让我们包括一个示例来帮助您确定输出内容:
ucwords( $string );
将返回
echo ucwords("Hi this is just a simple test of converting each word's first charater to uppercase!");