За последние 24 часа нас посетили 34674 программиста и 1695 роботов. Сейчас ищут 903 программиста ...

Помогите с вырезом конструции [...][/...]

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

  1. alexpts

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

    С нами с:
    18 ноя 2009
    Сообщения:
    28
    Симпатии:
    0
    Адрес:
    Россия
    Добрый день. В php я новичок.

    Помогите пожалуйста с вырезом из контента определенной конструкции.

    Имеем текст , в котором встречается [caption ...][/caption]. Как это вырезать из текста, если такая конструкция встретиться.

    Пытаюсь сделать что-то вроде этого

    $content = get_the_content(); // Содержит обрабатываемый текст

    preg_match_all("~(.*)(\[caption.*\])(.*)~Uis", $content, $mathes); // Создаю 3 массива, первый содержит текст до вырезаемой части, второй массив содержит вырезаемую часть[caption ...][/caption], третий массив содержит все что после вырезаемой части (по крайней мере я так думаю).

    ? Как проверить сработало ли у нас условное выражение, т.к. в тексте может и не быть такой конструкции и мы пропускаем все нужные на этом этапе обработки тогда, иначе нужно вывести содержимое, я думаю как-то так.

    $content = $mathes[1] . $mathes[3]; // Но в таком случае у меня выводится "ArrayArray", т.е. я понимаю склеиваются массивы, а не содержимое массивов.


    Возможно я делаю что-то не так, подскажите как это сделать.
     
  2. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    PHP:
    1. $text=preg_replace("#\[caption.*?\].*?\[\/caption\]#is","",$text);
     
  3. alexpts

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

    С нами с:
    18 ноя 2009
    Сообщения:
    28
    Симпатии:
    0
    Адрес:
    Россия
    Спасибо, Mr.M.I.T. ))