我有这个简单的字符串:
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>
如果可能的话,您将希望将代码更改为:
echo "<row><cell><chars class='subHeader'><value>" . ucwords("how much time do you spend") . "</value></chars></cell></row>";
只要你的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
完成它的工作后,更改被恢复。
然而,这可能会给你带来问题,如果>
序列存在较早,也将被删除。所以保重。
您确定它输出的是这个,而不是<row><cell><chars Class='subHeader'><value>how Much ...
,请注意Class
上的大写C。我猜ucwords()
对空格分隔的单词进行操作。