я делаю чек так:Проверьте изображение существует в большом цикле
// ADDITIONAL PRODUCT IMAGE
$add1 = @get_headers("https://{image_server_link}/DIx.jpg_RB2000,2000,255,255,255,127/-/article/" . $product_number . "_1.jpg");
if(strpos($add1[0], "404") === FALSE) {
// Image found, so let's print it out
}
Это внутри генератора CSV, а также из-за CSV содержит 2000+ продукции в get_headers
замедляет поколение от 3 до 4 МБ/с до 10-15 КБ/с. Поскольку наш CSV составляет 6,9 МБ, это займет много времени.
Есть ли у них какой-либо другой способ проверить, существует ли дополнительное изображение, которое быстрее?
Кстати, изображения размещаются на отдельном изображении-сервер с кэшированием лаком, так что это не возможно сделать is_file
функцию или что-то ..
Вам будет лучше использовать обтекатель потока (или использовать завиток) и включить keep-alives. Если вы делаете вызов get_header() для 2000 изображений, это 2000 полномасштабных http-подключений для установления/использования/отрыва. Постоянный режим уменьшит это до одного соединения tcp, которое будет использоваться несколько раз. И еще лучше, если это ваш сервер изображений, у вас должен быть доступ к исходной файловой системе и вы можете добавить скрипт, в котором перечислены доступные файлы. «Вот что у меня есть» будет FAR более эффективным, чем «у вас есть X» «у вас есть Y» «у вас есть Z» и т. Д. ... –
Вы можете смотреть на запросы без блокировки , Файл CSV будет прочитан, но после этого потребуется некоторое время (возможно, их параллельно - это хорошая идея?) – meiamsome
Я думаю, что лучше было бы скрыть изображение, если оно не загружает клиентскую сторону, количество обработки на стороне сервера будет занимать много времени, если это одно время, которое вы выполняете один раз в awhwile. –