我想编码实体以防止XHTML破坏而不编码XHTML元素本身。所以留下像插图一样的东西,但编码&符号。以下是我尝试搞砸的最小例子(是的,我知道它不是有效的XHTML,仅用于测试目的)。
<?php
$b = '&<br />&';
//echo htmlentities($b,ENT_XHTML);
echo htmlspecialchars($b);
?>
所需的输出......
&安培;
&安培;
答案 0 :(得分:0)
如果我理解正确,你只想编码&符号,试试这个:
echo str_replace('&', '&', $b);
<强> [编辑] 强>
如果您担心将&
的实例编码为&amp;
,可以使用:
echo preg_replace('/&[^(amp;)]/', '&', $b);
在这种情况下,Test & &
将被编码为Test & $amp;
答案 1 :(得分:0)
我抓住了所有......
<?php
$s = 'example & and &.';
$f = array('&','&#38;','&','&amp;');
$r = array('&','&','&','&');
echo str_replace($f,$r,$b);
?>
创建了一千个实体测试用例后,将所有真正需要编码的所有字符复制到XHTML文件中的是&符号。
对于那些测试并遇到奇怪的字符,例如Ã确保您的页面编码为UTF-8,而不是 windows-1252。