За последние 24 часа нас посетили 17805 программистов и 1286 роботов. Сейчас ищут 1368 программистов ...

Авто замена ссылок

Тема в разделе "Регулярные выражения", создана пользователем Mr.Gordon, 6 окт 2007.

  1. Mr.Gordon

    Mr.Gordon Активный пользователь

    С нами с:
    2 авг 2007
    Сообщения:
    37
    Симпатии:
    0
    Вот есть код:
    PHP:
    1. $text = preg_replace("#(http:\/\/[a-zA-ZА-Яа-я\-_\#\?\+\.\&\/]+)#i","<a href='\\1'>\\1</a>", $text);
    Он заменяет всё начинающееся на http....но у меня вопрос:
    как мне сделать чтобы он не заменял:
    _http://sdfdf.ru
    =http://sdfsdf.ru
    "http://dsfdfsdf.ru
    и тд.....
    ???
     
  2. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    "#(\shttp:
     
  3. eduha

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

    С нами с:
    8 ноя 2006
    Сообщения:
    278
    Симпатии:
    0
    Адрес:
    Караганда
    #(?<=\s|^)(http:
     
  4. Mr.Gordon

    Mr.Gordon Активный пользователь

    С нами с:
    2 авг 2007
    Сообщения:
    37
    Симпатии:
    0
    Kreker, У меня не все так ссылки заменились правельно....вот такой вариант <br>http://fsdfs.ru не заменился....
    eduha, А так у меня вобще всё с http исчезло (((
     
  5. eduha

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

    С нами с:
    8 ноя 2006
    Сообщения:
    278
    Симпатии:
    0
    Адрес:
    Караганда
    Mr.Gordon
    PHP:
    1. <?php
    2.  
    3. $text = <<<EOF
    4.  
    5. [url=http://sdfdf.ru]http://sdfdf.ru[/url] бла-бла [url=http://sdfdf.ru]http://sdfdf.ru[/url]
    6. _http://sdfdf.ru
    7. =http://sdfsdf.ru
    8. "http://dsfdfsdf.ru
    9.  
    10. EOF;
    11.  
    12. print preg_replace("#(?<=\s|^)(http:\/\/[a-zA-ZА-Яа-я\-_\#\?\+\.\&\/]+)#i","<a href='\\1'>\\1</a>", $text);
    13.  
    14. ?>
    HTML:
    1. <a href='http://sdfdf.ru'>http://sdfdf.ru</a> бла-бла <a href='http://sdfdf.ru'>http://sdfdf.ru</a>
    2. _http://sdfdf.ru
    3. =http://sdfsdf.ru
    4. "http://dsfdfsdf.ru
     
  6. Mr.Gordon

    Mr.Gordon Активный пользователь

    С нами с:
    2 авг 2007
    Сообщения:
    37
    Симпатии:
    0
    угу =)
    Вот только:
    Код (Text):
    1. <br>http://yandex.ru sdfsdfsdfsdf
    Такую не заменяет (((
     
  7. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    PHP:
    1.  
    2. <?php
    3. preg_replace("#[<br>\s\n\r](http:\/\/[a-zA-ZА-Яа-я\-_\#\?\+\.\&\/]+)#i","<a href='\\1'>\\1</a>", $text);
    4. ?>
    5.  
     
  8. eduha

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

    С нами с:
    8 ноя 2006
    Сообщения:
    278
    Симпатии:
    0
    Адрес:
    Караганда
    Ну тогда
    #(?<=\s|^|>)(http:\/\/[a-zA-ZА-Яа-я\-_\#\?\+\.\&\/]+)#i