Я пытаюсь сжать много изображений одновременно на моем сервере.
Размер сжатого файла может варьироваться от 250 МБ до 750 МБ.
Я использую библиотеку 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 );
}
}
Это должно сбрасывать max_execution_time на 30 секунд каждые 10 файлов, которые вы заархивировали.
Может быть, 10 немного мал, но вы поняли идею.
В качестве альтернативы вы можете попробовать установить max_execution_time в 0, например, только один раз в верхней части этого скрипта.
set_time_limit( 0 );
Других решений пока нет …