'file_get_contents'内容是否已加密?

时间:2013-08-23 08:42:12

标签: php file-get-contents

问题是当我使用 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)?

2 个答案:

答案 0 :(得分: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);

答案 1 :(得分:1)

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

  

string gzdecode(string $ 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);