За последние 24 часа нас посетили 17414 программистов и 1720 роботов. Сейчас ищут 946 программистов ...

Регулярка для преобразования ссылки в <a href... забыл =(

Тема в разделе "PHP для новичков", создана пользователем Invision, 11 мар 2011.

  1. Invision

    Invision Активный пользователь

    С нами с:
    26 фев 2009
    Сообщения:
    1.437
    Симпатии:
    1
    Адрес:
    Томск
    Недавно натыкался на регулярное выражение которое ссылку вида http://www.php.ru/ преобразовывала в <a href="http://www.php.ru/" target="_blank">http://www.php.ru/</a>

    Работало если не ошибаюсь через str_replace

    Спасибо за помощь =)
     
  2. Invision

    Invision Активный пользователь

    С нами с:
    26 фев 2009
    Сообщения:
    1.437
    Симпатии:
    1
    Адрес:
    Томск
    Нашел решение.

    PHP:
    1. <?php
    2. $message = "http://test.ru";
    3. $reg_exUrl = "/(http|https|ftp|ftps)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?/";
    4. if(preg_match($reg_exUrl, $message, $url)) {
    5. $message = preg_replace($reg_exUrl, '<a href="'.$url[0].'" target="_blank">'.$url[0].'</a>', $message);
    6. }
    7. echo $message;
    8. ?>
    мб кому пригодится =)
     
  3. Invision

    Invision Активный пользователь

    С нами с:
    26 фев 2009
    Сообщения:
    1.437
    Симпатии:
    1
    Адрес:
    Томск
    Вот еще вопрос) Сообщение вывожу через htmlspecialchars. Если преобразовано в ссылку то естественно она нормально не отображается...

    Как разрешить скажем только ссылки.. А то можно любой html код получается добавить :)
     
  4. Invision

    Invision Активный пользователь

    С нами с:
    26 фев 2009
    Сообщения:
    1.437
    Симпатии:
    1
    Адрес:
    Томск
    И опять решил проблему. Закинул код в функцию и вызвал функцию после htmlspecialchars. :)