PHP ZipArchive-> close()很慢

时间:2012-06-30 11:03:36

标签: php zip

我正在使用ZipArchive逐步压缩网站。我多次调用脚本以确保它不超过php max执行时间。

这适用于大多数Web主机。但是对于某些主机,在存档上调用close()非常慢,导致执行时间超出。

例如,在一台最长执行时间为30秒的主机上,我拉链20秒然后调用关闭,但它没有及时完成。

我尝试过PCLZip作为替代方案。它是可靠的,但相比之下却相当缓慢。

关于它为什么会这样表现以及它如何解决的任何想法?

1 个答案:

答案 0 :(得分:2)

例如,尝试通过ftp运行fopen / fwrite / fclose。您会注意到fopenfclose需要一段时间才能执行,而fwrite是即时的。

您可能会说“无法正确”fwrite每次都会通过ftp发送数据。我不知道它是否存在,但我敢打赌它没有,fclose发送所有批处理工作。

以同样的方式ZipArchive::close可能会完成您在此之前构建的所有内容并将其合并到最终文件中。