使用curl PHP获取压缩的XML文件(accommodation.xml.zip)

时间:2014-12-13 10:33:27

标签: php xml curl ftp

我已经使用并试过以下代码从FTP服务器获取xml文件,实际上xml文件被压缩为accommodation.xml.zip。 因此,我无法使用php

中的curl()获取该xml文件
$url_method = "ftp://ftp.example.com/accommodation.xml.zip";
$username = "test";
$pwd = "test";

   $ch = curl_init();
   curl_setopt($ch, CURLOPT_URL, $url_method);
   curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
   curl_setopt($ch, CURLOPT_USERPWD, "$username:$pwd");    
   $xmlcontent = gzdecode ( curl_exec($ch) ); 
   curl_close($ch);
   print_r($xmlcontent);

使用此代码,我有以下错误: ////////////////////////// 严重性:警告

消息:gzdecode():数据错误

文件名:controllers / cron.php

行号:438 /////////////////////////

但是当我尝试在浏览器中使用ftp url时,该zip文件已经下载。

任何人都可以帮助我使用curl()获取xml文件而不会出错吗?

1 个答案:

答案 0 :(得分:1)

gzdecode()无法解压缩文件。它解码了不同但名称相似的文件,称为gzip或gz文件。这就是函数报告data error

的原因

您必须使用PHP Zip Functions来提取和读取zip中的XML文件。 您可以找到PHP Zip函数here的使用示例。