gpt4 book ai didi

PHP 简单 html DOM 从 html 标签中删除所有属性

转载 作者:可可西里 更新时间:2023-10-31 23:17:02 27 4
gpt4 key购买 nike

$html = file_get_html('page.php');

foreach($html->find('p') as $tag_name)
{
$attr = substr($tag_name->outertext,2,strpos($tag_name->outertext, ">")-2);
$tag_name->outertext = str_replace($attr, "", $tag_name->outertext);
}
echo $html->innertext;

以上是我编写的代码,用于获取所有 <p> 中的内容我的 html 页面中的标记并删除它们。


我的 html 代码与此类似:

<p class="..." id = "..." style = "...">some text...</p>
<p class="..." id = "..." style = "...">some text...</p>
<p class="..." id = "..." style = "...">some text...</p>
<font>
<p class="..." id = "..." style = "...">some text ...</p>
<p class="..." id = "..." style = "...">some text ...</p>
</font>
<p class="..." id = "..." style = "...">some text...</p>


如果我运行 php 代码,结果将是这样的:

<p>some text...</p>
<p>some text...</p>
<p>some text...</p>
<font>
<p class="..." id = "..." style = "...">some text ...</p>
<p class="..." id = "..." style = "...">some text ...</p>
</font>
<p>some text...</p>

它不会删除 <p>标记 <font> 内的属性.
如果有人能帮我解决这个问题,我将不胜感激。

最佳答案

当我使用您的代码和示例 HTML 时,它确实从所有 <p> 中删除了所有属性标签,甚至里面的标签 <font> ,所以我不确定为什么你的不工作。

但它看起来像simplehtmldom has methods专门处理属性,因此您不必使用字符串函数:

$html = file_get_html('page.php');


foreach($html->find('p') as $p) {
foreach ($p->getAllAttributes() as $attr => $val) {
$p->removeAttribute($attr);
}
}
echo $html->innertext;

希望这会更有效。

关于PHP 简单 html DOM 从 html 标签中删除所有属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38794173/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com