如何在斜线后使用ucwords()来大写字母?

时间:2012-12-16 01:44:29

标签: php string

我试图在“预告片/促销片”中将T和P大写,但ucwords()只会将T大写。有没有办法做到这一点?

注意:我不能只是操纵字符串来将每个/转换为空格,然后返回斜杠,因为我将在像“音乐视频”这样不应该有斜杠的字符串上运行它在他们中间。

4 个答案:

答案 0 :(得分:1)

您可以使用两种方法。不太可靠,希望没有空白的选择:

str_replace(' ', '/', ucwords(str_replace('/', ' ', "trailer/promo,")));

然后可能是一个更强大的方法:

implode('/', array_map(ucwords, explode('/', "trailer/promo,")));

http://codepad.org/N8FmWRz5

我相信我可能会想到其他一些。可能有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), "/");