2

ZipArchive を使用して、サイトを段階的に圧縮しています。スクリプトを複数回呼び出して、php の最大実行時間を超えないようにします。

これは、ほとんどの Web ホストで正常に機能します。ただし、一部のホストでは、アーカイブで close() を呼び出すと非常に遅くなり、実行時間が超過します。

たとえば、最大実行時間が 30 秒の 1 つのホストで、20 秒間圧縮してから close を呼び出しますが、間に合いません。

代わりに PCLZip を試しました。信頼できますが、比較すると驚くほど遅いです。

なぜこのように動作するのか、どのように回避できるのかについてのアイデアはありますか?

4

1 に答える 1

2

たとえば、fopen/ fwrite/を ftp で実行してみてください。すぐに実行できることにfclose気づきfopenfclose実行に時間がかかります。fwrite

「それは正しくない」と言うかもしれませんがfwrite、毎回 ftp 経由でデータを送信します。できるかどうかはわかりませんが、そうではなく、fcloseすべてのバッチ作業を送信するに違いありません。

同様の方法ZipArchive::closeで、それまでに構造化したすべてのものを仕上げて、最終的なファイルにマージすることもできます。

于 2012-06-30T11:08:16.180 に答える