我試圖從curl的xml.gz文件中獲取數據。我可以下載該文件,但無法獲得可用的XML。當我嘗試打印的XML,我得到的亂碼特殊字符,如一個長長的清單:使用curl獲取gzipped XML文件的問題PHP
‹ì½ûrâÈ–7ú?E~{Çž¨Ši°î—Ù5=ÁÍ6]`Ø€ë²ãDLÈ u
有沒有一種簡單的方法,只是解壓縮和編碼這種XML?可能通過SimpleXML?文件很大,並且需要認證。這是我現在的代碼:
$username='username';
$password='password';
$location='http://www.example.com/file.xml.gz';
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$location);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_USERPWD,"$username:$password");
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
curl_setopt($ch, CURLOPT_HEADER, 0);
$xmlcontent = curl_exec ($ch);
curl_close($ch);
print_r($xmlcontent);
感謝您的幫助!
小心:gzip是_not_ zip,所以「unzip」是錯誤的方法... – arkascha
謝謝。我在解釋中的錯誤。現在更正。 – David
那麼反對使用現有的PHP函數解壓它呢?無論是'gzdecode'(http://www.php.net/manual/de/function.gzdecode.php)還是'gzuncompress',取決於結果的實際編碼方式。 – arkascha