删除包含特定 id 或 类 属性的 PHP 元素
Deleting elements with PHP that contains specific id or classes attribute
我有一个简单的问题,但我没有找到答案。
我有这个简单的 html 代码:
<div class="iWantThisElement">
Not Delete this one
</div>
...
<div class="itemx">
Delete This
</div>
...
<span id="xxitemsxx">
Delete This
</span>
...
<div class="delete">
Delete This
</div>
...
<h2 id="deleteThisOneToo">
Delete This
</h2>
...
<div class="Iwantthis">
Not Delete this one
</div>
我想要一个规则来删除所有元素,其中 class 或 id 包含特定的词或单词,例如,我想用这些单词删除 classes 或 ids :
itemx,xxitemsxx,deleteThisOneToo,删除
所以,我们可以有这样一个数组:
$array = array("item","delete");
并且如果 任何 元素(如 h2
、div
、span
等)包含 id OR class 的数组,必须删除.
html 的输出必须是这样的:
<div class="iWantThisElement">
Not Delete this one
</div>
...
...
...
...
...
<div class="Iwantthis">
Not Delete this one
</div>
我用 preg_replace 和模式尝试了很多代码,但我无法解决它。
我们如何在 php 中做到这一点?最好最快的方法?
谢谢。
在 div
中搜索 this
class:
/<[^<]+class=[^>]+this[^>]+>[^<]+<\/div>/img
在 div
中搜索 this
id:
/<[^<]+id=[^>]+this[^>]+>[^<]+<\/div>/img
class、id 和任何标签的最终示例:
$source = "<div..."; // your html markup
$find_word = "this";
$class_pattern = array("/<[^<]+class=[^>]+", "[^>]+>[^<]+<\/[a-z]+>/i");
$id_pattern = array("/<[^<]+id=[^>]+", "[^>]+>[^<]+<\/[a-z]+>/i");
$result = preg_replace($class_pattern[0].$find_word.$class_pattern[1], "", $source);
$result = preg_replace($id_pattern[0].$find_word.$id_pattern[1], "", $result);
演示:
http://sandbox.onlinephpfunctions.com/code/2f64fae1d6cbaa0efc7e777e653097891a43113d
我有一个简单的问题,但我没有找到答案。
我有这个简单的 html 代码:
<div class="iWantThisElement">
Not Delete this one
</div>
...
<div class="itemx">
Delete This
</div>
...
<span id="xxitemsxx">
Delete This
</span>
...
<div class="delete">
Delete This
</div>
...
<h2 id="deleteThisOneToo">
Delete This
</h2>
...
<div class="Iwantthis">
Not Delete this one
</div>
我想要一个规则来删除所有元素,其中 class 或 id 包含特定的词或单词,例如,我想用这些单词删除 classes 或 ids :
itemx,xxitemsxx,deleteThisOneToo,删除
所以,我们可以有这样一个数组:
$array = array("item","delete");
并且如果 任何 元素(如 h2
、div
、span
等)包含 id OR class 的数组,必须删除.
html 的输出必须是这样的:
<div class="iWantThisElement">
Not Delete this one
</div>
...
...
...
...
...
<div class="Iwantthis">
Not Delete this one
</div>
我用 preg_replace 和模式尝试了很多代码,但我无法解决它。
我们如何在 php 中做到这一点?最好最快的方法?
谢谢。
在 div
中搜索 this
class:
/<[^<]+class=[^>]+this[^>]+>[^<]+<\/div>/img
在 div
中搜索 this
id:
/<[^<]+id=[^>]+this[^>]+>[^<]+<\/div>/img
class、id 和任何标签的最终示例:
$source = "<div..."; // your html markup
$find_word = "this";
$class_pattern = array("/<[^<]+class=[^>]+", "[^>]+>[^<]+<\/[a-z]+>/i");
$id_pattern = array("/<[^<]+id=[^>]+", "[^>]+>[^<]+<\/[a-z]+>/i");
$result = preg_replace($class_pattern[0].$find_word.$class_pattern[1], "", $source);
$result = preg_replace($id_pattern[0].$find_word.$id_pattern[1], "", $result);
演示: http://sandbox.onlinephpfunctions.com/code/2f64fae1d6cbaa0efc7e777e653097891a43113d