对于这个 PHP 脚本,
$dom = new DOMDocument();
$dom->substituteEntities =FALSE;
$dom->loadHTML('<a href="$a?">$a</a>');
// print_r ($dom->getElementsByTagName("a")->item(0)->getAttribute("href"));
//上面的语句展示了 $a 是否正确
echo $dom->saveHTML();
当调用saveHTML方法时,它返回<a href="%24a">$a</a>给浏览器。
在href属性中的$被转换为%24,而a标签内容中的$保持不变。我期望输出结果应该是<a href="$a">$a</a>。除了使用replace方法,还有其他方法可以实现吗?
顺便说一下,
echo $dom->saveXML();
我使用saveXML()方法得到了我想要的内容; 但同时还有一个意外出现的<!--xml...... 谢谢
$
不是URL中有效的字符。你有特殊原因想要保留一个无效的href吗? - Wrikken$dom->saveXML($dom->documentElement);
这样的方式保存节点,但这也有其自己的怪癖和缺点。当前问题的缺点在于,如果您需要某些内容进行 url 编码,则必须对其进行双重编码。因此,选择适合您的方案吧 ;) - Wrikken