В моем коде мне нужно удалить все теги из строки, кроме тега со встроенным атрибутом «display: none», поэтому теги выглядят так:
<div style="display:none"></div>
должен остаться нетронутым.
Каков был бы лучший способ достичь этого? Есть ли способ заставить работать strip_tags таким образом?
Вы можете передать вторые параметры (хотите исключить) в strip_tags как
$str = "<html><div style='display:none'></div></html>";
echo strip_tags($str, '<div></div>');
Выход будет <div style='display:none'></div>
Вы можете использовать регулярные выражения /<[^>] *> /
<?PHP
$val = preg_replace('/<[^>]*>/', '', '<div style="display:none">tessss</div>') ;
echo $val ;
?>
strip_tags работают только с видимыми тегами, но регулярное выражение — лучший способ
Я наконец сделал это так:
$ div = preg_replace (‘/<(?! /? div style = «display: none) [^>] +> / ‘,’ ‘, $ div);