PHP-html_simple_dom,搜寻器对innerhtml进行编码?

时间:2019-05-26 13:18:41

标签: php web-crawler

我正在使用PHP html_simple_dom。

目标站点正在使用UTF-8。我的PHP以及流上下文都设置为使用UTF 8。

一个元素(我通过浏览器检查)的innerHTML为"AAA ' BBB",至少与使用firefox和chrome浏览器进行渲染时一样。

但是,我的PHP脚本始终以"AAA ' BBB"的形式获取此字符串。 我可以使用htmlspecialchars_decode($ string,1)来解决此问题,但是我真的很想知道为什么使用我的PHP来访问PHP脚本,或者网站首先(错误地)对字符串进行编码,这是明确的设置为UTF

header('Content-Type: text/html; charset=utf-8');
define("CONTEXT", stream_context_create(
    array(
        "http" =>
            array(
                "header" => 'Content-Type: text/html; charset=utf-8'
               // also tried 'header' => 'Accept-Charset: UTF-8'
            )
        )
)
);

targetsite读取UTF-8-http://mtggoldfish.com.cutercounter.com/

$ html = file_get_html($ url,false,CONTEXT);

// do things, blurts out every "'" as encoded &#039

1 个答案:

答案 0 :(得分:1)

浏览器检查器进行了一些转换,以使其具有人类可读性。

创建一个仅包含AAA ' BBB主体的简单HTML,您将在检查器中看到AAA ' BBB

如果您真的想查看页面的内容,请查看源代码(file_get_html得到的源代码)