我正在使用PHP中的一些HTML,每当我尝试使用HTML / XML解析器时,它都会返回荒谬的大型复杂对象/数组。有时它甚至不会这样做,因为我正在使用的HTML有时偶尔会在某些地方被错误格式化,但它在对我来说不重要的地方会被错误格式化。因此,我刚刚决定在代码上使用一些字符串函数,这很好。
除此之外,这就是我需要的。这是我的HTML:
<section id="whatever">
<article>
<h1>Title</h1>
<p>The quick brown fox jumped over the lazy dog.</p>
</article>
<article>
<h1>Another itle</h1>
<p>Lorem ipsum dolor sit amet consectetuer adipiscing elit.</p>
</article>
</section>
我想删除所有不是p
标记的内容,所以我希望最终值是这样的:
<p>The quick brown fox jumped over the lazy dog.</p>
<p>Lorem ipsum dolor sit amet consectetuer adipiscing elit.</p>
数据可以以任何方式返回,我不需要元素上的属性或类似的东西,我只需要标记的内容。
答案 0 :(得分:1)
为什么不使用strip_tags
echo strip_tags($str, '<p>');
答案 1 :(得分:1)
您可以使用preg_match_all():
$html = '<section id="whatever">
<article>
<h1>Title</h1>
<p>The quick brown fox jumped over the lazy dog.</p>
</article>
<article>
<h1>Another itle</h1>
<p>Lorem ipsum dolor sit amet consectetuer adipiscing elit.</p>
</article>
</section>';
preg_match_all ('/<p.*?>(.*?)<\/p>/', $html, $result);
print_r ($result[0]);
/*
Array
(
[0] => <p>The quick brown fox jumped over the lazy dog.</p>
[1] => <p>Lorem ipsum dolor sit amet consectetuer adipiscing elit.</p>
)
*/