2

问题是当我使用file_get_contents从该站点获取源代码(HTML)时,我收到的结果不是纯 html 代码。

我使用的代码:

$source = file_get_contents("http://mp3.zing.vn/bai-hat/Dance-With-My-Father-Luther-Vandross/ZWZ9D6FD.html");
echo $source;
// OR print_r($source);

我收到的消息来源:

��}{�#Ǒ��-��!E��=��Mv�5�B���R�����h��E�HV7YE�������a�X��p{��[�:�!{��;,v��u��Or��̬��Y��M��ʌ̌�����������F��ޖ����ػ��S� #�~��H�7k�����ʎȦ2���M?�ު&D�����t���$u�O��N���>%(Y����I��Vb�[���VN�=�[�![*�dE*�]3:�ޑ�xiA���Z��g ��祇VejI �R�y�֨�ea��o��s�M/�... *MORE

我尝试使用 cURL,但我也收到了相同的结果:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://mp3.zing.vn/bai-hat/Dance-With-My-Father-Luther-Vandross/ZWZ9D6FD.html");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$source = curl_exec($ch);
curl_close($ch);

我认为我收到的源必须是加密的,但如果我使用浏览器查看源,源将不会被加密。

最终,我真的不知道发生了什么,以及如何获得纯源代码(纯 HTML)?

4

2 回答 2

4

它是 gzip 压缩的,只需设置正确的编码即可

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://mp3.zing.vn/bai-hat/Dance-With-My-Father-Luther-Vandross/ZWZ9D6FD.html");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch,CURLOPT_ENCODING , "gzip");
$source = curl_exec($ch);
curl_close($ch);
于 2013-08-23T08:45:30.697 回答
1

看一下gzdecode(需要 ZLIB PHP 模块,但如果你没有它,我强烈考虑使用 JimL 的 cURL 方法)。

字符串 gzdecode ( 字符串 $data [, int $length ] )

$source = file_get_contents("http://mp3.zing.vn/bai-hat/Dance-With-My-Father-Luther-andross/ZWZ9D6FD.html");
echo gzdecode($source);
// OR print_r($source);
于 2013-08-23T08:51:19.800 回答