использование PHP Simple HTML DOM Parser для поиска и высоты

#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 никоим образом не указывает истинную высоту изображения.