所以我有这个程序需要解压缩一些非常大的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()
调用中使用底层操作系统解压缩功能......