Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Регулярное выражение для URL-адреса и изображения в тексте или HTML

Автор вопроса: CommunityОтветов: 2

У меня заканчиваются идеи о лучшей реализации регулярного выражения для этой проблемы.

Пример пользовательского ввода:

bla bla bla http://foo.com bla bla bla http://tinypic.com/boo.png bla bla bla

Ищете решение, которое обнаружит URL-адрес, не являющийся изображением, и превратит его в ссылку, а также превратит URL-адрес изображения во встраиваемое изображение (тег IMG).

поэтому вывод будет:

bla bla bla <a href="http://foo.com">http://foo.com</a> bla bla bla <img src="http://tinypic.com/boo.png" /> bla bla bla

Связанный

  • Это типичный вопрос "извлечь URL-адреса" / "связать URL-адреса". Вы проверили вопросы? (См. Раздел "Связанные" справа.) Gumbo 11.03.2009

urlimagephpregex

Ответы

Ответ 1 · рейтинг 4 · MarkusQ

Разбейте его на несколько этапов.

Сначала найдите ссылки с чем-то вроде:

/http:[^ ,]+/i

Затем замените совпавшую строку новым содержимым в зависимости от типа, который вы можете определить, сопоставив заменяемую строку с чем-то вроде:

/\.(jpg|png|gif|bmp)$/i

Ответ 2 · bobince

Ищете решение, которое обнаружит URL без изображения

Не существует такой вещи, как URL-адрес изображения или URL-адреса без изображения. Наличие (или отсутствие) расширения файла ".gif" / ". Jpeg" / ". Jpg" / ". Png" не имеет ничего общего с тем, указывает ли URL на изображение или нет.

например. "http://www.example.com/getimage/3" может вернуть отличный JPEG. Невозможно узнать, на какой тип мультимедиа указывает URL-адрес, не получая его (используя GET или, лучше, HEAD) и проверяя, что возвращаемый Content-Type - это "изображение / что-то".

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы