PHP - 除某些单词外,每个单词的第一个字符大写

odd*_*uck 5 php string lowercase capitalize

我有一批像这样的字符串:

tHe iPad hAS gONE ouT of STOCK
PoWER uP YOur iPhone
wHAT moDEL is YOUR aPPLE iPHOne
Run Code Online (Sandbox Code Playgroud)

我想将每个单词的第一个字符大写,并将其余字符小写 - 除了iPhoneor的任何引用iPad。如:

通过使用:

ucwords(strtolower($string));
Run Code Online (Sandbox Code Playgroud)

这可以完成大部分需要的工作,但显然也可以在iPad和 上完成iPhone

The Ipad Has Gone Out Of Stock
Power Up Your Iphone
What Model Is Your Apple Iphone
Run Code Online (Sandbox Code Playgroud)

我怎样才能实现以下目标:

The iPad Has Gone Out Of Stock
Power Up Your iPhone
What Model Is Your Apple iPhone
Run Code Online (Sandbox Code Playgroud)

Don*_*nic 4

您可以为此使用str_replace 。如果前两个参数使用数组,则可以定义一组单词和替换:

echo str_replace(['Ipad', 'Iphone'], ['iPad', 'iPhone'], ucwords(strtolower($string)));
Run Code Online (Sandbox Code Playgroud)

从文档中:

如果搜索和替换是数组,则 str_replace() 从每个数组中获取一个值,并使用它们来搜索和替换主题。