За последние 24 часа нас посетили 59132 программиста и 1810 роботов. Сейчас ищут 2453 программиста ...

Регулярка для bbcode url

Тема в разделе "PHP для новичков", создана пользователем viphost, 4 апр 2012.

  1. viphost

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

    С нами с:
    23 мар 2009
    Сообщения:
    307
    Симпатии:
    0
    Всем привет, прошу помочь с регуляркой
    На форуме есть bbcode
    Код (Text):
    1. [url]http://site.ru/[url]
    2. [url=http://site.ru/]Регулярка[url]
    Получилось разобраться только с
    Код (Text):
    1. [url]http://site.ru/[url]
    2. Сделав такую регулярку
    3. $bbcode = preg_replace('#\[url\](.+)\[\/url\]#isu', "<a href=\"http://$1\">$1</a>", $bbcode);
    а вот со вторым вариантом никак не получается, пробовал так
    Код (Text):
    1. $bbcode = preg_replace('#\[url=(.+)\](.+)\[\/url\]#isu', "<a href=\"http://$2\">$3</a>", $bbcode);
    2. и еще куча вариантов, но никак на получилось, то что нужно
     
  2. Ke1eth

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

    С нами с:
    16 мар 2012
    Сообщения:
    1.073
    Симпатии:
    11
    Адрес:
    заблудилса
    Код (PHP):
    1. $bbcode = preg_replace('#\[url\=(.+)\](.+)\[\/url\]#iUs', '[url="$1"]$2[/url]', $bbcode); 
     
  3. viphost

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

    С нами с:
    23 мар 2009
    Сообщения:
    307
    Симпатии:
    0
    вместе не работают
    Код (Text):
    1.     $bbcode = preg_replace('#\[url\](.+)\[\/url\]#isu', "<a href=\"http://$1\">$1</a>", $bbcode);
    2.     $bbcode = preg_replace('#\[url\=(.+)\](.+)\[\/url\]#iUs', "<a href=\"$1\">$2</a>", $bbcode);
    по отдельности работают =(

    Победил =)
    Код (Text):
    1.     $bbcode = preg_replace('/\[url\](?:http:\/\/)?(.+)\[\/url\]/', "<a href=\"http://$1\">$1</a>", $bbcode);
    2.     $bbcode = preg_replace('/\[url\s?=\s?([\'"]?)(?:http:\/\/)?(.+)\1\](.*?)\[\/url\]/', "<a href=\"http://$2\">$3</a>", $bbcode);