Как вырезать из поля контент все div

Знаю что есть striptags но как его использовать чтобы вырезать все div с любыми классами и закрывающие div
Евгений
25 сентября 2022, 14:54
modx.pro
223
0

Комментарии: 7

Артур Шевченко
25 сентября 2022, 19:30
0
Ну смотри, strip_tags() вырежет все HTML-тэги, а не только div, если ты конечно вторым параметром не передашь список разрешённых тэгов, но по-моему это не удобно. Я бы использовал что-то типа этого
$str = '<div class="test"> <p>dgdfgdfg</p> </div> <div class="test2"> <p>dgdfgdfg gdfgfh</p> </div>';
echo preg_replace(['/<div.*?>/', '/<\/div>/'], '', $str);
    Евгений
    26 сентября 2022, 10:03
    0
    пробовал
    [[*content:striptags=`p,h1,li,ul,iframe`]]
    но он почему то и p вырезал… что не так?
Роман
26 сентября 2022, 10:39
0
$content = preg_replace("/<\/?div[^>]*\>/i", "", $content);
    Евгений
    26 сентября 2022, 10:44
    0
    это куда? у меня в шаблоне контент вызывается
    [[*content]]
      Роман
      26 сентября 2022, 10:59
      0
      Скорее всего как-то так.
      {$_modx->resource.content | ereplace : "/<\/?div[^>]*\>/i":""}
      Ну или как подсказывают выше, вот так:
      [[*content:striptags=`<div>`]]
      если php 7.4 и выше, то можно и массивом задавать ['div', 'iframe']
    Евгений
    26 сентября 2022, 15:32
    0
    а как правильно перечислить замены для replace?
    [[*content:striptags=`<p>,<h2>`:replace=`<p>слово</p>== `]]
    или может есть другая возможность вырезать определенные слова на лету?
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      7