$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;
以上是我编写的代码,用于在我的html页面中的所有<p>
标记中删除它们并删除它们。
<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>
<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>
标记属性
如果有人可以帮助我,我会很感激。
答案 0 :(得分:3)
当我使用您的代码和示例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;
希望这会更有效。