我正在尝试使用file_get_contents解析http://www.desi-tashan.com/category/pakistan-tvs/aaj-tv/3-idiots/。
但是它返回非常不寻常的字符和符号。
好像我解析http://www.desi-tashan.com/一样很好。有人可以告诉我为什么会这样吗?
是否涉及编码解码?
该页面似乎是用wordpress制作的。
最佳答案
您看到的内容是gzipped
您可能会对 gzdecode
或 zlib-decode
感兴趣(请注意,默认情况下未启用PHP中的Zlib支持)
您的代码可能如下所示
$url = 'http://www.desi-tashan.com/category/pakistan-tvs/aaj-tv/3-idiots/';
$content = file_get_contents($url);
$decoded_content = gzdecode($content); // or zlib_decode($content);
另一个关于stackoverflow的解决方案here,它在请求中添加HTTP标头
Accept-Encoding
,告诉服务器不要gzip。但是,它不适用于
www.desi-tashan.com
,服务器将忽略Accept-Encoding
标头,并始终返回压缩后的内容