PHP/HTML: 将HTML闭合标签替换为换行符

4

我正在爬取网页上的html,当我使用php strip_tags时,它会将整个html压缩成一行,去除所有结构。

我想保留结构,通过将关闭的h、p和br标签替换为换行符来实现。

preg_replace是最好的解决方案吗?

一旦我替换了所有的关闭标签,我就会运行strip_tags,但这样我就会有一个基本的结构。

2个回答

10
$str = 'some html';
$tags = array('</p>','<br />','<br>','<hr />','<hr>','</h1>','</h2>','</h3>','</h4>','</h5>','</h6>');
$str = str_replace($tags,"\n",$str);

// then strip tags

为什么要遍历数组?你可以直接将数组传递给str_replace函数。 - liquorvicar
@liquorvicar 很好的观点 - 我忘记了 str_replace 可以做到这一点 - 请查看更新 - Alex Coplan

0

为什么不在之后通过tidy运行它以恢复结构呢?


我想去掉所有的HTML标签,但保留基本结构和换行符。 - giorgio79
嗨@quickshiftin,我对如何使用整洁的方法来获取结构很感兴趣。 - jovialcore
@jovialcore 只需跟随该链接,手册中有足够的解释。 - quickshiftin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接