ProfiPHPProfiPHP
Категория: Полезное в PHP

Найти первое изображение в тексте PHP

Очень часто появляется необходимость найти первое изображение в тексте. Сделать это можно очень большим количеством разных вариантов, и все они, без исключения, будут работать и выполнять свои функции. Другое дело время их выполнения, но для поиска первого изображения на данный параметр можно не смотреть, поскольку все выполниться незаметно.

Самой известной задачей для поиска первого изображения является создания последних новостей в блоке. И так, допустим, мы имеем текст:
$text = 'Text text text <img src="/uploads/images1.jpg" class="left" />
Text text text <img src="/uploads/images2.jpg" class="left" />';
Найти путь к первому изображению можно так:
preg_match( '/<img(.*)src(.*)=(.*)"(.*)"/U', $text, $regexResult );
echo $firstImgScr = array_pop( $regexResult );
В данном выражении мы использовали жадность квантификаторов, которая возвращает максимально возможную подстроку.

Также можно использовать следующий вариант:
preg_match( '/<img.+src=[\'"](?P<src>.+?)[\'"].*>/i', $text, $image );
echo $image['src'];
Более углубленную информацию о регулярных выражений можете почитать в статье: Регулярные выражения в PHP.

Найти изображение целиком можно так:
preg_match( '~<img[^>]+>~', $text, $first_image );
echo $first_image[0];
Но значительно лучше найти только путь, и потом его обработать под свои потребности. Другие варианты описывать не стоит, поскольку выше описанные примеры подойдут практически для всех ситуаций.

Добавить комментарий

Имя:
Текст комментария: