PHP ucwords工作除了第一个单词之外的所有内容?

时间:2011-10-29 12:27:46

标签: php

我有这个简单的字符串:

echo ucwords("<row><cell><chars class='subHeader'><value>how much time do you spend</value></chars></cell></row>");

但它的输出如此:

<row>
<cell>
<chars Class="subHeader">
<value>how Much Time Do You Spend</value>
</chars>
</cell>
</row>

3 个答案:

答案 0 :(得分:2)

如果可能,您需要将代码更改为:

echo "<row><cell><chars class='subHeader'><value>" . ucwords("how much time do you spend") . "</value></chars></cell></row>";

答案 1 :(得分:1)

只要您的HTML就像输入中那样简单,特别是US-ASCII编码且不包含任何CDATA部分,这可能会有效:

$str = "<row><cell><chars class='subHeader'><value>how much time do you spend</value></chars></cell></row>";

$str = str_replace('>', '> ', $str);
$str = ucwords($str);
$str = str_replace('> ', '>', $str);

echo $str;

这确实有效,因为>是HTML中的保留字符。在每次之后添加空格将使ucwords按照记录的方式工作。在ucwords完成工作后,更改将被还原。

然而,如果先前存在>序列,这​​也可能会导致您遇到问题。所以要小心。

答案 2 :(得分:0)

你确定它正在输出,而不是<row><cell><chars Class='subHeader'><value>how Much ...,请注意Class上的大写C。我的猜测是ucwords()对空格分隔的单词进行操作。

相关问题