За последние 24 часа нас посетил 17221 программист и 1222 робота. Сейчас ищут 1393 программиста ...

Есть текст типа [img1]alt[/img1] подскажте как лучше сделать

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

  1. REI

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

    С нами с:
    13 авг 2007
    Сообщения:
    4
    Симпатии:
    0
    Есть такой текст:
    "текст текст текст текст текст [img1]One[/img1] текст текст текст текст текст текст текст текст [img2]Two[/img2]".

    С этой страницы берётся её номер и выводиться подобное.
    Страница 3:
    "текст текст текст текст текст текст текст текст <img src="3_1.jpg" alt="One" /> текст текст текст текст текст текст текст текст <img src="3_2.jpg" alt="Two" />".

    Сделано это с помощью str_replace так как количество картинок ограничено ([img1] до [img9]).

    Есть ли другие предложения по поводу кода?
    Нужно ли здесь применять регулярные выражения?
     
  2. AlexGousev

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

    С нами с:
    25 мар 2006
    Сообщения:
    1.505
    Симпатии:
    0
    Адрес:
    Москва
    PHP:
    1. <?php
    2.  
    3. echo preg_replace('%\[img(\d+)\](.*)\[/img\d+\]%Ui', '<img src="3_$1" alt="$2"/>', $str);
    4.  
    5. ?>
     
  3. REI

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

    С нами с:
    13 авг 2007
    Сообщения:
    4
    Симпатии:
    0
    Класс, спасибо.
    Только ещё раз нарушу правила и попрошу - на форумах всегда есть возможность написать ссылка.
    Я с регулярными вообще очень плохо дружу всё как-то с MySQL приходиться.
    Как заменить http://ya.ru на <a href="http://ya.ru" target="_blank">http://ya.ru</a>?
     
  4. mIKeLp

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

    С нами с:
    7 сен 2007
    Сообщения:
    10
    Симпатии:
    0
    PHP:
    1.  
    2. <?php
    3.  
    4. $url = "бла бла [url]http://уа.ru[/url] бла";
    5.  
    6. echo preg_replace("%\[url\](.*)\[/url\]%Ui", "<a href=\"$1\" target=\"_blank\">$1</a>", $url);
    7.  
    8. ?>
    9.  
     
  5. shreck

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

    С нами с:
    7 авг 2007
    Сообщения:
    479
    Симпатии:
    0
    Адрес:
    Россия, Саратов
    Улыбнуло.
     
  6. Диди

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

    С нами с:
    8 апр 2007
    Сообщения:
    72
    Симпатии:
    0
    Адрес:
    Люберцы, МО
    :idea: А если усложнить задачу?
    На форумах (как раз сейчас занимаюсь) бывает для ссылок и такая конструкция:
    [ url=http: // www . адрес такой-то . com] А здесь какой-то текст для ссылки [/ url ]

    Используем такое выражение:
    Код (Text):
    1. preg_replace ("%\[url=(.*)\](.*)\[/url\]%Ui", "<a href=\"$1\" target=\"_blank\">$2</a>", $f['MsgText']);
    А вот кто подскажет, как сделать так, чтобы выражение внутри [ url ] [ /url ] могло содержать перевод строки? Чтой-то никак не допру... :?:
     
  7. Sergey89

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

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
     
  8. Диди

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

    С нами с:
    8 апр 2007
    Сообщения:
    72
    Симпатии:
    0
    Адрес:
    Люберцы, МО
    Гениально! :D Спасибо!