我有这个简单的字符串:
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>
答案 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()
对空格分隔的单词进行操作。