Как вырезать из поля контент все div
Знаю что есть striptags но как его использовать чтобы вырезать все div с любыми классами и закрывающие div
Комментарии: 7
Ну смотри, 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);
пробовал
[[*content:striptags=`p,h1,li,ul,iframe`]]
но он почему то и p вырезал… что не так?
Потому что нужно писать
<p>,<a>
$content = preg_replace("/<\/?div[^>]*\>/i", "", $content);
это куда? у меня в шаблоне контент вызывается
[[*content]]
Скорее всего как-то так.
{$_modx->resource.content | ereplace : "/<\/?div[^>]*\>/i":""}
Ну или как подсказывают выше, вот так:[[*content:striptags=`<div>`]]
если php 7.4 и выше, то можно и массивом задавать ['div', 'iframe']
а как правильно перечислить замены для replace?
[[*content:striptags=`<p>,<h2>`:replace=`<p>слово</p>== `]]
или может есть другая возможность вырезать определенные слова на лету?
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.