У меня заканчиваются идеи о лучшей реализации регулярного выражения для этой проблемы.
Пример пользовательского ввода:
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
Связанный
Ответ 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 - это "изображение / что-то".