我正在使用ZipArchive来增量压缩网站。我多次调用脚本以确保它不超过 php 最大执行时间。
这在大多数网络主机上工作正常。但是,对于某些主机,在存档上调用 close() 非常慢,并导致超过执行时间。
例如,在一台最大执行时间为 30 秒的主机上,我压缩 20 秒,然后调用 close,但它没有及时完成。
我已经尝试过PCLZip作为替代方案。它很可靠,但相比之下速度慢得惊人。
关于它为什么以这种方式运行以及如何解决它的任何想法?
例如,
尝试通过ftp运行fopen
/fwrite
/fclose
。您会注意到fopen
,fclose
需要一段时间才能执行,而fwrite
是即时的。
您可能会说"这不可能是对的",fwrite
每次都通过 ftp 发送数据。我不知道它是否这样做,但我敢打赌它没有,fclose
发送所有批处理工作。
以类似的方式,ZipArchive::close
可能会完成您在此之前构建的所有内容并将其合并到最终文件中。