Главная > PHP > Заменить все текстовые ссылки с помощью preg_replace

Заменить все текстовые ссылки с помощью preg_replace

12.02.2012 4 комментария » Просмотры: 4 146

RegExp

Как регуляркой найти в тексте, неоформленные url и вставить их как ссылку..

результат:

Автор: | Рейтинг: 4/5 | Теги:

4 комментария

Написать свой
  1. Vitaliy Orlov Ответить
    21.12.2015 в 3:15 пп

    $text = 'dsfsdfsdf http://www.site-name.ru/ ? dsfsdfsdf';

    $text = preg_replace("#([^\"'=])((https?|ftp)://[^'\"<>\n\r ]+)(?!<\/a>)(['\"<>\n\r ])#i", '\\1 \\2 <a href="\\2"title="Открыть Ссылку в Новом Окне" target="_blank" rel="nofollow">открыть</a>\\4', $text);

    echo $text;
    получится:

    dsfsdfsdf http://www.site-name.ru/ открыть ? dsfsdfsdf
    • eldar Ответить
      21.12.2015 в 4:13 пп
      Виталий спасибо за прекрасную функцию, оказывается всё работает very good
      • Vitaliy Orlov Ответить
        21.12.2015 в 4:17 пп
        Пожалуйста, рад что помог :)
  2. eldar Ответить
    21.12.2015 в 1:17 пп
    здравствуйте, помогите подправить ваш код, у меня есть ссылка в тексте:

    $detail_t="dsfsdfsdf http://www.site-name.ru/ ? dsfsdfsdf";
    При использовании кода

    $detail_t = preg_replace("#([^\"'=])((https?|ftp)://[^'\"\n\r ]+)(?!)(['\"\n\r ])#i", '\\1 \\2 <a href="\\2" title="Открыть Ссылку в Новом Окне" target="_blank" rel="nofollow">открыть</a>\\4', $detail_t);
    echo $detail_t;
    Получаю неправильную ссылку

    "http://www.site-name.ru/ ?"
    помогите подправить код - чтобы он ссылку брал до первого пробела.

Добавить комментарий для Vitaliy Orlov Отменить ответ

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

Разрешены HTML-теги: <a>, <code>, <i>, <em>, <strong>, <b>, <u>, <strike>