サーバーで一度に多くの画像を圧縮しようとしています。圧縮ファイルのサイズは 250MB から 750MB の範囲です。私は pclzip ライブラリを使用しています。
共有ホスティングを使用しているため、最大実行時間とメモリ制限が制限されています。どうすればこの問題を解決できますか? または代替ソリューションについて教えてください。
ありがとう
スクリプト内で使用set_time_limit ( int $seconds )
してみましたか?
擬似コードですみませんが、このようなもの
initialise the zip class
foreach ( files in the directory as $idx => $name) {
add $name to the zip file;
// every 10 files zipped, reset the max_execution_time
if ( $idx > 0 && $idx % 10 == 0 ) {
set_time_limit ( 30 );
}
}
これにより、圧縮する 10 個のファイルごとに max_execution_time が 30 秒にリセットされ続けます。
10 は少し小さい数かもしれませんが、お分かりいただけると思います。
または、max_execution_time をこのように 0 に設定してみてください。このスクリプトの先頭で 1 回だけです。
set_time_limit( 0 );