#php
#php
Вопрос:
Я использую PHP Simple HTML DOM Parser для возврата нескольких изображений с внешних страниц. Мне нужно минимизировать количество возвращаемых изображений, возвращая только изображения шириной более 50 пикселей и высотой более 60 пикселей.
Как я могу использовать PHP Simple HTML DOM Parser для определения высоты и ширины каждого изображения по мере его выполнения и возврата только тех изображений, которые соответствуют вышеуказанным требованиям?
Спасибо!
РЕДАКТИРОВАТЬ добавленный код
Пока это то, что у меня есть.
foreach($html->find('img') as $element) {
$images = $element->src;
echo $images;
}
Комментарии:
1. Что у вас есть на данный момент? Вы читали руководство и пример кода на их сайте?
2. Добавлен блок кода выше. Да, я прочитал руководство на их сайте.
3. @Paul привет, какое решение ты нашел для этого?
Ответ №1:
Если высота не указана в качестве атрибута в HTML, вам придется выполнять HTTP-запросы для загрузки каждого изображения, чтобы сделать это.
К счастью, PHP getimagesize поддерживает URL-адреса:
$images = /* code to find images in the DOM */;
$res = array();
foreach ($images AS $img) {
$res[$img] = getimagesize($img);
}
Комментарии:
1. Привет, Том. Спасибо за ответ. Однако getimagesize() работает ОЧЕНЬ медленно при использовании этого способа. Ничего страшного, если некоторые изображения потеряны из-за отсутствия высоты
2. Это медленно, потому что он отправляет HTTP-запросы на удаленный сервер для извлечения изображения — этого нельзя избежать. Просто нет другого способа найти размеры без 1) подсказки в HTML или 2) извлечения изображения.
3. Не является ли атрибут height=»x» хорошим индикатором при сопоставлении с тегом <img>? Я понимаю, что высота может существовать не всегда, и это нормально для того, что я пытаюсь сделать.
4. Одно из двух измерений, удовлетворяющих вашим минимальным требованиям, не означает, что другое будет, но если вы запустите небольшой тест и проверите %, это произойдет, вы можете определить, является ли диапазон приемлемым в вашем случае использования. В противном случае, IMO, относительно безопасно предположить, что при размерах 50-60px, если один больше, другой тоже будет, и наоборот, с точки зрения меньшего, чем.
5. @paul, слишком часто сайты используют изображения в высоком разрешении даже на больших пальцах (вы заметите, что они загружаются медленно). высота attr никоим образом не указывает истинную высоту изображения.