如何下载zip文件并使用PHP cURL提取和解析其中的xml文件
我有一个脚本,它通常使用一个类从外部服务器下载xml。 现在我用同样的代码下载了一个zip文件,解压缩它,这就是要解析的xml。 我最初的问题是如何检索zip文件并解压缩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
$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。如何以正确的方式保存它@马尔克