首页 > 解决方案 > PHP file_get_contents() 输出垃圾 HT​​ML

问题描述

我尝试访问的网页有<meta charset="utf-8">标签。我正在使用以下代码来访问 HTML。

$options = array(
'http'=>array(
    'method'=>"GET",
    'header' => implode("\r\n", array(
    "User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36",
    "Content-type: text/html",
    "Accept-Language: en-us,en;q=0.5",
    "Accept-Charset: utf-8;q=0.7,*;q=0.7"
    ))
  )
);
$context = stream_context_create($options);

$webpage_html = file_get_contents($webpage_url, false, $context);

同一网页的 HTML 输出时不时地出现垃圾。它在其他时候可以完美地工作,而无需更改代码。这是一个示例垃圾输出:

Xi�۸��_!�R2Y�PҬ�]��|��r썏�lM&S /�������5c'�]K@��h����d2������L�ǟ^�N���"��,(DsW�i�d��3�����53�I^�|��i�~�~�o�ʟ|

我可以做些什么来确保每次都能获得正确的 HTML?编码有问题吗?

更新

网页每次都在浏览器中成功打开。我还从浏览器复制了请求标头,但问题仍然存在。如果有帮助,我正在访问的网站是亚马逊。

标签: phpencodingfile-get-contents

解决方案


推荐阅读