【发布时间】:2014-03-14 09:12:49
【问题描述】:
我正在编写一个从中文网站提取 HTML 源代码的脚本。 我尝试 file_get_contents 来读取网络文件,
$html = file_get_contents($url);
echo $html;
下面是得到的结果,
我在目标网站中发现内容类型为,
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
所以我尝试将结果转换为 utf-8,
$html = file_get_contents('http://newhouse.bt.soufun.com/house/web/Search_Result.php');
$html = mb_convert_encoding($html,'utf-8','GB2312');
echo $html;
现在正在显示结果,
使用上述选项,我无法获得页面的正确来源,因此无法进一步解析。我需要解析 HTML 并使用 DOM 解析器从中获取结构化数据。在这里,我收到了无法进一步解析的格式错误的 HTML 响应。
我尝试了 file_get_contents 以及 CURL。
我目前卡在这一点上,任何帮助或建议将不胜感激。 提前谢谢。
【问题讨论】:
-
不要只假设源编码,东方国家使用各种更方便其字母的编码。
$html = mb_convert_encoding($html,'utf-8',mb_detect_encoding ($html));我不认为这是你的问题,看起来你正在恢复二进制内容 -
@GordonM 是的,我的问题出在二进制内容后面。
标签: php html dom curl character-encoding