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