【问题标题】:php domdocument loadhtml turns $ into (url encoding)%24 unexpectedlyphp domdocument loadhtml 意外将 $ 变成(url 编码)%24
【发布时间】:2014-02-16 11:33:07
【问题描述】:

对于这个 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 属性中的 $ 变成了 %24,而 a 标签内容中的 $ 保持不变。

我希望输出是 $a 除了替换方法之外,还有什么方法可以做到这一点吗?

顺便说一句,

  echo $dom->saveXML();

我得到了我想要的 saveXML(); 但是加上一个意想不到的

标签: php domdocument


【解决方案1】:

在我的情况下,一种更安全的方法是使用:

$dom->saveXML();

【讨论】:

    【解决方案2】:

    您可以将 echo 包裹在 urldecode 中来解决这个问题:

    echo urldecode($dom->saveHTML());
    

    【讨论】:

    猜你喜欢
    • 2017-08-03
    • 2012-05-18
    • 2017-01-02
    • 2014-03-10
    • 2012-02-27
    • 1970-01-01
    • 1970-01-01
    • 2015-05-04
    • 2012-09-01
    相关资源
    最近更新 更多