我正在尝试使用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标头,并始终返回压缩后的内容

07-28 12:02