У меня заканчиваются идеи о наилучшей реализации регулярного выражения для этой проблемы.
Пример ввода пользователем:
bla bla bla http://foo.com bla bla bla http://img.ruphp.com/php/404.gif bla bla bla
Ищете решение, которое обнаружит URL-адрес без изображения и превратит его в ссылку, а также превратит URL-адрес изображения в встраиваемый образ (IMG-тег).
поэтому выход будет:
bla bla bla <a href="http://foo.com"> http://foo.com </a> bla bla bla <img src = "http://img.ruphp.com/php/404.gif" /> bla bla bla
Разбейте его на несколько этапов.
Во-первых, найдите ссылки с чем-то вроде:
/http:[^ ,]+/i
Затем замените соответствующую строку новым содержимым на основе типа, который вы можете обнаружить, сопоставив строку, которую нужно заменить, например:
/\.(jpg|png|gif|bmp)$/i
Ищете решение, которое будет обнаруживать не-образный URL-адрес
Нет такой вещи, как изображение или URL-адрес без изображения. Наличие (или отсутствие) расширения файла .gif '/'. Jpeg '/. Jpg' / '. Png' не имеет никакого отношения к тому, указывает ли URL на изображение или нет.
например. « http://www.example.com/getimage/3 » может вернуть совершенно хороший JPEG. Невозможно узнать, на каком носителе указывает URL-адрес, не получая его (используя GET или, лучше, HEAD), и проверка возвращаемого «Content-Type» – это «образ / что-то».