Преобразовать url из текста в активную ссылку на php

Преобразовать url из текста в активную ссылку на phpВ этой статье я хочу показать пару интересных регулярных выражений. Эти «регулярки» заменяют во всем тексте урлы, на активные ссылки. То есть если в тексте встретится урл, например www.vk-book.ru, то с помощью регулярных выражений ссылка будет заменена на активную — станет кликабельна и будет перенаправлять на соответствующий сайт. Ниже находится сам код с примером его использования:

// пример использования
$text = "
    Пример текста с ссылками. Например, ссылка на яндекс - http://yandex.ru или вот еще на Вконтакте - www.vk.com. Вот так!
";
echo changeTextToLink($text);

/**
* Преобразование url из текста в активную ссылку
*
* @param string $text - входящий текст
*
* @return string - текст с замененными ссылками
*/
function changeTextToLink($text){
    $text = preg_replace("/(^|[\n ])([\w]*?)((www|ftp)\.[^ \,\"\t\n\r<]*[^ \.])/is", "$1$2<a href=\"http://$3\" >$3</a>", $text);
    $text = preg_replace("/(^|[\n ])([\w]*?)((ht|f)tp(s)?:\/\/[\w]+[^ \,\"\n\r\t<]*[^ \.])/is", "$1$2<a href=\"$3\" >$3</a>", $text);
    return($text);
}

Обновление 2018.03.17: отредактировал регулярку, чтобы точка в конце ссылки не подставлялась в урл.


Рассказать друзьям:


Оценить:
(1 оценок, среднее: 5,00 из 5)

Преобразовать url из текста в активную ссылку на php: 2 комментария

  1. Наконец-то нашел рабочий код.
    Только нужно его доработать, так как в том пример который приводите ссылку ВК он берет вместе с точкой!

    1. Только сегодня заметил комментарий :)
      Подправил регулярку, теперь последняя точка игнорируется и не подставялется в урл

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*

code