[英]Memory Management and ZipArchive class in PHP
我有一个PHP脚本,该脚本使用PHP的ZipArchive类将许多小文件添加到同一zip存档文件中。
最近,脚本开始出现内存不足的情况,尽管档案很大,但是我只能一个一个地添加小文件,每次需要添加文件时都可以安全地重新打开档案。
最初的存档文件长大一点一点地50 MB所以我想加入少许文件不是问题,真正的问题可能是,每当ZipArchive类增加了一个文件,然后解压缩整个压缩文件到内存中。 这是正确的假设吗?
内存管理不是PHP的强项之一。 我在手册中看不到任何内容可以确认或消除整个存档都已解压缩到内存中的想法,但我想是的。
尝试将$zip->open()
的返回值与ZIPARCHIVE::ER_MEMORY
-如果它们相等,则应确认PHP正在打开内存中的整个存档。
确认它的另一种方法是将memory_limit的设置( http://us2.php.net/manual/en/ini.core.php#ini.memory-limit )与zip文件的大小进行比较。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.