将3个字符以下的字符串中的所有单词完全大写

Cla*_*dia 1 php

我试图完成以下任务:

$string = "i want to convert this string to the following";
Run Code Online (Sandbox Code Playgroud)

并将其转换为如下所示:

echo $string;
// I Want TO Convert This String TO THE Following
Run Code Online (Sandbox Code Playgroud)

因此:将字符串中所有单词的首字母大写,如果一个单词不超过3个字符,则将整个单词都大写。PHP如何无法做到这一点?

net*_*der 5

快速方法(使用正则表达式):

$new_string = preg_replace_callback('/\b\w{1,3}\b/', function($matches){
   return strtoupper($matches[0]);
}, $string);
Run Code Online (Sandbox Code Playgroud)

编辑:

没看到您想要其他。应该这样做:

$new_string = ucwords($new_string);
Run Code Online (Sandbox Code Playgroud)

您也可以将它们结合在一起。:)