PHP - html_simple_dom,爬虫编码innerhtml?

我使用 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'

            )

        )

)

);

目标站点读取 UTF-8 - http://mtggoldfish.com.cutercounter.com/


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


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


慕森卡
浏览 106回答 1
1回答

红颜莎娜

浏览器检查器进行了一些转换以具有人类可读的内容。创建一个仅AAA ' BBB在正文中使用的简单 HTML ,您将AAA ' BBB在检查器中看到。如果你真的想看页面的内容,看源代码(这是什么file_get_html得到的)
打开App,查看更多内容
随时随地看视频慕课网APP