За последние 24 часа нас посетили 17759 программистов и 1283 робота. Сейчас ищут 1433 программиста ...

автоматическое создание ссылок

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

  1. evrofriker

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

    С нами с:
    7 апр 2007
    Сообщения:
    2
    Симпатии:
    0
    Помогите, пожалуйста.
    в PHP пока не очень, в регулярках очень не очень :oops: .
    в общем есть такой код:
    Код (Text):
    1.  
    2. $dt[4]=eregi_replace("((https?|ftp)://[[:alnum:]_=/-]+(\\.[[:alnum:]_=/-]+)*(/[[:alnum:]+&amp;._=/~%#]*(\\?[[:alnum:]?+&amp;_=/%#]*)?)?)", "<a href='\\1'>\\1</a>", $dt[4]);
    который адреса вида http://a.a делает ссылками... в общем, нужно сделать так, чтобы если уже адрес сделан обычным тегом, то ничего не трогать. например, в переменной уже записано
    Код (Text):
    1.  бла бла бла <a href="http://photofile.ru/dfgdfg/4.jpg"><img src="http://photofile.ru/dfgdfg/8.jpg"></a>
    .
    Нужно сделать, чтобы если уже есть
    Код (Text):
    1.  <a href="
    или
    Код (Text):
    1. <img src="
    , то вставлять ссылку не нужно.

    очень прошу помочь... :roll:
     
  2. simpson

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

    С нами с:
    11 фев 2006
    Сообщения:
    1.650
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    PHP:
    1. <?php
    2. $str = '<a href="http://site.com">link</a> [url=http://site.com]http://site.com[/url] text <a href=\'http://site.com\'>link</a> [url=http://site.com]http://site.com[/url] text';
    3.  
    4. $regex = '~(?<!ref="|src=")(ht|f)tps?://[\w%#\~:;&=+,./?-]+~is';
    5. $replace = '<a href="\\0">\\0</a>';
    6. print preg_replace($regex, $replace, $str);
    7. ?>
     
  3. evrofriker

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

    С нами с:
    7 апр 2007
    Сообщения:
    2
    Симпатии:
    0
    Большое пребольшое спасибо.