Как регулярное выражение IMG, где ширина> = 300? - PullRequest
3 голосов
/ 04 ноября 2011

Как я могу получить все <img> с width >= 300?

Моя разметка / код:

$images = <<<END
<img src="/data/img/201108031_023" width="300" height="400" />
<img src="/data/img/201108031_026" width="250" height="300" />
<img src="/data/img/201108031_028" width="400" height="300" />
<img src="/data/img/201108031_032" width="500" height="400" />
...
END;

Моя попытка:

preg_match_all("/<img(.*?) \/>/",$images,$matches);
print_r($matches);

Ответы [ 2 ]

6 голосов
/ 04 ноября 2011

Не рекомендуется использовать для этого регулярное выражение.

Это работает для вашего конкретного примера, но имеет ряд проблем, потому что HTML не может правильно анализироваться регулярным выражением:

"/<img[^>]*width=\"([3-9][0-9]{2}|[1-9][0-9]{3,})\"[^>]*>/"

Посмотрите, как он работает в режиме онлайн: ideone

Я бы посоветовал вам вместо этого искать анализатор HTML.

Связано

0 голосов
/ 04 ноября 2011
"/<img[^>]*width=\"[0-9]*[3-9][0-9]{2}\"[^>]*\/>/"
...