Удаление шаблонных данных из строки php

370
18 января 2017, 02:45

Есть переменная, содержащая HTML вёрстку. Из нее нужно удалить все блоки вида

<blockquote><p><img src="/files/answer/6926092/acddd8f931ffa5f4931c492dc8a81483.png"></p></blockquote>

Попытался сделать так:

function DelImg ($text){
    $text = preg_replace('/<img.*>/Uis', '', $text);
    return $text;
}

Соответственно этот обработчик оставляет

<blockquote><p></p></blockquote>

Пытался сделать как то так:

function DelImg ($text){
    $text = preg_replace('/<blockquote><p><img.*></p></blockquote>/Uis', '', $text);
    return $text;
}

Так само собой ошибка.

Подскажите "шаблон" для preg_replace() Который бы сделал это за 1 "прогон", потому что в <blockquote><p></p></blockquote> хранится еще и текст, который нужно оставить. То есть удалить нужно только квоты, который содержат img

Answer 1

Этот пример работает, очень еффективно

function DelImg ($text)
{
    $text = preg_replace('/<blockquote><p><img.*?<\/blockquote>/', '', $text);
    return $text;
}
Answer 2

Подскажите "шаблон" для preg_replace() Который бы сделал это за 1 "прогон"

Пробуйте такой регэксп: /<blockquote><p><img[^>]+><\/p><\/blockquote>/

Answer 3

function DelImg ($text){ 
    $text = preg_replace('/<blockquote>.*<img*<\/blockquote>/', '', $text); 
    return $text; 
}

READ ALSO
как парсить doc и docx на php

как парсить doc и docx на php

Привет, подскажите, пожалуйста как парсить документы типа doc и docx без использования библиотек на php?

399
Проблема с редактированием модуля в Joomla

Проблема с редактированием модуля в Joomla

Собственно видео - https://wwwyoutube

316
Как мне преобразовать строку в массив

Как мне преобразовать строку в массив

Есть строка в таком виде: $string = "text;text;text\text2;text;text"; Я помещаю в массив данную строку таким образом:

319