使用PHP解压缩大档案(> 1 GB)

时间:2014-07-21 09:19:04

标签: php unzip ziparchive

所以我有这个程序需要解压缩一些非常大的zip文件。每个的大小在1到2 GB之间。我的zip程序在较小的文件中没有任何问题(高达几百MB,一切都很好)。但是当档案更大时,程序会解压缩,但会暂停执行并且不会继续执行。我增加了mem大小和exec时间,但无济于事。我的代码是:

set_time_limit(0);
ini_set('memory_limit','3000M');

writeLog("Starting to extract...");

$zip = new ZipArchive();
if ($zip->open($zipFile) === TRUE)
{
    $zip->extractTo(ZIP_DIR);
    $zip->close();
}
else
{
    writeLog('There was an error while unzipping');
}
processZipFile();

当我运行时,日志说:“开始提取......”

它永远不会给我错误:“拉链时出错”

当我转到解压缩文件夹并进行检查时,我可以看到存档已成功解压缩,但从未调用processZipFile()。事实上,即使我在其位置写了echo,它也永远不会被执行。

我正在使用php unzip.php从命令行运行此脚本。我的脚本可能需要在windows和linux中运行,所以我不确定在system()调用中使用底层操作系统解压缩功能......

0 个答案:

没有答案