php domdocument loadhtml 意外地将 $ 变成(url 编码)%24

use*_*729 5 php domdocument

对于这个 php 脚本,

$dom = new DOMDocument();
    $dom->substituteEntities =FALSE;
    $dom->loadHTML('<a href="$a?">$a</a>');
    // print_r ($dom->getElementsByTagName("a")->item(0)->getAttribute("href")); 
Run Code Online (Sandbox Code Playgroud)

//上面的语句显示$a? 正确地

    echo $dom->saveHTML();
Run Code Online (Sandbox Code Playgroud)

但当调用 saveHTML 方法时,它会将 <a href="%24a">$a</a> 返回到浏览器。href 属性中的 $ 变为 %24,而 a 标签内容中的 $ 保持不变。

我预计输出是 <a href="$a">$a</a> 除了替换方法之外还有什么方法可以做到这一点?

顺便一提,

  echo $dom->saveXML();
Run Code Online (Sandbox Code Playgroud)

我用 saveXML() 得到了我想要的;但加上一个意想不到的 <!--xml...... 谢谢

voo*_*417 -2

您可以将 echo 包装在urldecode中来解决此问题:

echo urldecode($dom->saveHTML());
Run Code Online (Sandbox Code Playgroud)