php - 需要 PHP 脚本来解压和循环压缩文件

标签 php zip unzip

我正在使用一个相当简单的脚本来打开和解析几个 gzip 压缩的 xml 文件。我还需要对 ZIP 文件执行相同的基本操作。看起来应该很简单,但我无法在任何地方找到看起来等效的代码。

这是我已经在做的事情的简单版本:

$import_file = "source.gz";

$sfp = gzopen($import_file, "rb");  /////  OPEN GZIPPED data
while ($string = gzread($sfp, 4096)) {    //Loop through the data

    /// Parse Output And Do Stuff with $string
}
gzclose($sfp);      

压缩文件会做同样的事情吗?

最佳答案

如果您有 PHP 5 >= 5.2.0,PECL zip >= 1.5.0,那么您可以使用 ZipArchive 库:

$zip = new ZipArchive; 
if ($zip->open('source.zip') === TRUE) 
{ 
     for($i = 0; $i < $zip->numFiles; $i++) 
     {   
        $fp = $zip->getStream($zip->getNameIndex($i));
        if(!$fp) exit("failed\n");
        while (!feof($fp)) {
            $contents = fread($fp, 8192);
            // do some stuff
        }
        fclose($fp);
     }
} 
else 
{ 
     echo 'Error reading zip-archive!'; 
} 

关于php - 需要 PHP 脚本来解压和循环压缩文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2600105/

相关文章:

php - 如何检查文件是否存在于 zip 存档中

java - 文件压缩到固定大小在Java中

php - 解压缩或膨胀 php ://input stream?

java - Storm 流: Cannot run program "unzip" (in directory ".")

php - 从 WooCommerce 中的面包屑中删除 "Shop"

php - 自定义配置文件不适用于表单验证

java - 如何读取 Zip 文件内的文件内容

java - 在 Android 上解压缩大文件

php - Laravel API 最佳实践

php - mysqli_real_escape_string 阻止 preg_split 工作?