我试图完成以下任务:
$string = "i want to convert this string to the following";
并将其转换为以下内容:
echo $string;
// I Want TO Convert This String TO THE Following
因此: 将字符串中的所有单词的首字母大写 如果一个单词是3个字符或更少,则在字符串中使整个单词大写。 怎么用PHP做不了?
答案 0 :(得分:4)
快速方式(使用正则表达式):
$new_string = preg_replace_callback('/\b\w{1,3}\b/', function($matches){
return strtoupper($matches[0]);
}, $string);
修改强>
没看到你想要其余的。这应该这样做:
$new_string = ucwords($new_string);
您也可以将它们组合在一起。 :)
答案 1 :(得分:3)
你可以爆炸()你的字符串并循环它以检查长度:
$array = explode(' ', $string);
foreach($array as $k => $v) {
if(strlen($v) <= 3) {
$array[$k] = strtoupper($v); //completely upper case
}
else {
$array[$k] = ucfirst($v); //only first character upper case
}
}
$string = implode(' ', $array);