За последние 24 часа нас посетили 19753 программиста и 1694 робота. Сейчас ищут 1868 программистов ...

Помогите с регуляркой...

Тема в разделе "Регулярные выражения", создана пользователем EvelRus, 19 июн 2009.

  1. EvelRus

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

    С нами с:
    16 ноя 2006
    Сообщения:
    2.168
    Симпатии:
    0
    Адрес:
    Москва
    есть типа BBcode
    [flash=URL]
    надо в пхп сделать замену этого кода на код плеера где адресом до видео будет URL
    что-то я не очень въехал как это оформить :)))
     
  2. kostyl

    kostyl Guest

    preg_replace_callback
     
  3. EvelRus

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

    С нами с:
    16 ноя 2006
    Сообщения:
    2.168
    Симпатии:
    0
    Адрес:
    Москва
    4 раза прочитал, но не въехал :)) можно простейший пример с комментариями?
     
  4. kostyl

    kostyl Guest

    PHP:
    1.  
    2. <?php
    3. $msg = preg_replace_callback("#\[flash=(регулярка для URL)\]#i",
    4.  create_function('$matches', '
    5. return "<тэг проигрывателя url=".$matches[1].">";'),
    6.  $msg);
    7.  
    Вроде чтото такое. Тесть выбираем в тексте все твои BBcod-ы такие, и их заменяем на тэг с совпадение с шаблоном в первых скобках, тоесть ссылку...
    (ps: щас на работе, сам запутался)
     
  5. Psih

    Psih Активный пользователь
    Команда форума Модератор

    С нами с:
    28 дек 2006
    Сообщения:
    2.678
    Симпатии:
    6
    Адрес:
    Рига, Латвия
    зачем callback вообще

    PHP:
    1. <?php
    2. $template = '<object ..... src="$1" ... <embed ...src="$1"....';
    3. $msg = preg_replace('/\[flash=(.*)?\]/y', $tempalte, $msg);
     
  6. Koc

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

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    Psih
    еси коды для ютьюба и vimeo разные к примеру) Внутри callback'а анализируем переданные параметры и возвращаем разный резалт.

    я бы делал не через create_function а через норм ф-цию.