Обработка большого сжатого файла в php

Я пытаюсь сжать много изображений одновременно на моем сервере. Размер сжатого файла может варьироваться от 250 МБ до 750 МБ. Я использую библиотеку pclzip.

Я использую виртуальный хостинг, поэтому максимальное время выполнения и ограничение памяти ограничены. Как я могу решить эту проблему? или, пожалуйста, расскажите мне о любых альтернативных решениях.

Спасибо

1 ответ

Решение

Вы пытались использовать 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 );
Другие вопросы по тегам