Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/254.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何下载zip文件并使用PHP cURL提取和解析其中的xml文件_Php_Xml_Curl_Unzip - Fatal编程技术网

如何下载zip文件并使用PHP cURL提取和解析其中的xml文件

如何下载zip文件并使用PHP cURL提取和解析其中的xml文件,php,xml,curl,unzip,Php,Xml,Curl,Unzip,我有一个脚本,它通常使用一个类从外部服务器下载xml。 现在我用同样的代码下载了一个zip文件,解压缩它,这就是要解析的xml。 我最初的问题是如何检索zip文件并解压缩xml 这是我的实际代码: $ch2=curl_init(); curl_setopt($ch2, CURLOPT_URL, $this->URL); curl_setopt($ch2, CURLOPT_TIMEOUT, 540); curl_setopt($ch2, CURLOPT_HEA

我有一个脚本,它通常使用一个类从外部服务器下载xml。 现在我用同样的代码下载了一个zip文件,解压缩它,这就是要解析的xml。 我最初的问题是如何检索zip文件并解压缩xml

这是我的实际代码:

    $ch2=curl_init();
    curl_setopt($ch2, CURLOPT_URL, $this->URL);
    curl_setopt($ch2, CURLOPT_TIMEOUT, 540);
    curl_setopt($ch2, CURLOPT_HEADER, 0);
    curl_setopt($ch2, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch2, CURLOPT_POST, 1);
    curl_setopt($ch2, CURLOPT_POSTFIELDS,$this->XMLRequest);
    curl_setopt($ch2, CURLOPT_SSL_VERIFYHOST, 1);
    curl_setopt($ch2, CURLOPT_SSL_VERIFYPEER, FALSE); 
    curl_setopt($ch2, CURLOPT_SSLVERSION, 3); 
    curl_setopt($ch2, CURLOPT_FOLLOWLOCATION, true);

    $httpHeader2 = array(
        "Content-Type: text/xml; charset=UTF-8",
        "Content-Encoding: UTF-8"
    );    

    $zip = curl_exec($ch2);
    $this->errno=curl_getinfo( $ch2, CURLINFO_HTTP_CODE );

    curl_close($ch2);
如何获取zip文件并将其解压缩以检索其中的xml?


<?php
    //Add  this to end of your code
    file_put_content('./temp.zip' ,$zip );
    $ZipArchive = new ZipArchive;
    if ($ZipArchive->open('./temp.zip' ) === TRUE) {
        $ZipArchive->extractTo('/my/destination/dir/');
        $ZipArchive->close();
        echo 'ok';
    } else {
        echo 'failed';
    }
?>

无论是哪种文件,下载过程都是相同的。您只需添加解压步骤即可将xml文件从压缩文件中解压出来。我已经打印了$zip的值,并且是一个加密字符串,那么我的var-zip已经是压缩文件了吗?我必须保存到我的服务器解压,然后检索里面的xml@MarcBit不是加密字符串,它只是压缩的数据。您必须将其写入磁盘,解压缩,然后从中获取xml。如何以正确的方式保存它@马尔克