Создаю zip-файл с помощью ZipArchive, куда записываю изображения. Процесс довольно долгий, но VPS позволяет.
$zip = new ZipArchive();
$imagesZipFile = __DIR__.'/../files/images_' . $xmlCreateDatetime . '.zip';
$imageNewName = 'autocity_'.$car['id'];
$i = 0;
foreach($imagesArray as $image){
if($image != '..' AND $image != '.'):
// Add image to zip
if($zip->open($imagesZipFile, ZipArchive::CREATE)!==TRUE):
continue;
endif;
$zip->addFile($imageDir . '/' . $image, $imageNewName.$image);
// Add string to xml
$ImageElt = $domDoc->createElement('Image');
$ImageName = $domDoc->createAttribute('name');
$ImageName->appendChild($domDoc->createTextNode($imageNewName.$image));
$ImageElt->appendChild($ImageName);
$ImagesNode->appendChild($ImageElt);
$i++;
endif;
}
$zip->close();
В итоге файл полностью создается, помещается в нужную папку, но в конце скрипт отдает Gateway Timeout, хотя при небольших циклах возвращает нужную переменную.
В итоге два вопроса:
Если у вас fast-cgi + php-fpm на сервере, то можно использовать функцию fastcgi_finish_request();
она отдает ответ браузеру, при этом скрипт продолжает выполняться на сервере, периодически записывая куда-то состояние выполнения задачи
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Во многих интернет-магазинах замечаю, что url страницы товара является латинским транслитом наименования этого товараИ вряд-ли разработчики...
Кто работал с данной библиотекой - знает, куки браузера можно получить только при событие onOpen доступном в chatphp только там можно получить данные...
Показательный пример, почему не надо пихать объявления сразу нескольких переменных в одну строку