2013-08-23 49 views
2

問題是當我使用file_get_contents從本網站獲取源代碼(HTML)時,我收到的結果不是純HTML代碼。'file_get_contents'內容已加密?

代碼中,我使用的:

$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 

我試圖與捲曲,但我也獲得了相同的結果:

$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

可能不會 「加密的」,但* *壓縮。加密的HTML是沒有意義的,因爲它對任何人都沒有用。 – deceze

+0

[我如何使用file \ _get \ _contents在php中的遠程web服務器上獲取gzip的頁面?](http://stackoverflow.com/questions/3800147/how-do-i-use -file-get-contents-to-get-a-gziped-page-on-a-remote-web-server-in-p) – fire

+0

謝謝。我真的不知道它是gzip :) – InOrderToLive

回答

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); 
+0

謝謝。我真的不知道它是gzip :) – InOrderToLive

0

看看gzdecode(需要zlib PHP模塊,雖然 - 如果你沒有它,我強烈認爲使用cURL使用JimL的方法)。

串gzdecode(字符串$數據[摘要$長度])

$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); 
+0

謝謝。我真的不知道它是gzip :) – InOrderToLive