我试图在“预告片/促销片”中将T和P大写,但ucwords()
只会将T大写。有没有办法做到这一点?
注意:我不能只是操纵字符串来将每个/转换为空格,然后返回斜杠,因为我将在像“音乐视频”这样不应该有斜杠的字符串上运行它在他们中间。
答案 0 :(得分:1)
您可以使用两种方法。不太可靠,希望没有空白的选择:
str_replace(' ', '/', ucwords(str_replace('/', ' ', "trailer/promo,")));
然后可能是一个更强大的方法:
implode('/', array_map(ucwords, explode('/', "trailer/promo,")));
我相信我可能会想到其他一些。可能有filter_var()
之类的内容,埋在某处。
答案 1 :(得分:1)
ucword不会这样做,除非你设法将单词空格分开并在每个单词后再次将它们连接在一起。 这是一个简单的例子:
implode('/', array_map('ucwords',explode('/','trailer/promo')));
上面的代码简单地从字符串“trailer / promo”使用“/”来分隔单词。然后通过ucwords()运行每个单词(使用array_map())。在每个单词由ucwords处理之后,包含已处理值的数组将使用相同的“/”再次连接在一起。所有这一切只是一行。
答案 2 :(得分:0)
由于ucwords的delimiter参数,从PHP 5.4.32和5.5.16开始,它是如此简单:
ucwords($string, '/');
答案 3 :(得分:0)
您也可以使用php 7.2.24中的定界符来实现它
$word = "White/white pearl and silver";
$result = ucwords(ucwords($word)), "/");
结果字符串将为“白色/白色珍珠和银色”
在Laravel 5.7中
ucwords(Illuminate\Support\Str::title($word), "/");