去除 HTML 字符串但不要丢失换行符

Strip HTML string but don't lose line breaks

我有一个字符串,其中包含很多 HTML(HTML 电子邮件正文)。

我想要做的是丢失所有 HTML 但保留换行符,我尝试了 strip_tags() 但这对我来说没有用,它使字符串只有 1 行。

完成后,我只想回显该字符串的前 5 行。

有人知道吗?

更新:

$string = strip_tags($string, '<p><br><br />');

似乎有效,现在我必须 select 字符串的前 5 行,有人知道吗?

更新: 数组不断给出一些空值。 我设法删除了空的,但数组没有重新开始计数。 数组现在看起来像这样:

Array ( [8] =>

Dit is een nieuwe test met meerdere regels.
[9] =>

Dit is regel nummer 2.
[10] =>

Dit is regel nummer 3.

但它应该再次从 0 开始计数。

array_filter() array_merge()等不工作。

使用带有第二个参数的 strip_tags,例如:strip_tags($html, '<p><br>')。正如您所看到的,第二个参数接受 $allowable_tags 和文档中一样 ..

另见 this question/answer。

也许最容易获得前几行的方法是使用 explode:

$lines = explode("<br>", $string); // take first 5 from this array by exploding new lines 

使用$lines[0](第一行)、$lines[1](第二行)等获取课程行。

现在修复了,不再使用电子邮件,而是从数据库中获取消息数据,现在我可以剥离字符串并展开,现在从 0 开始计数!

谢谢你的想法。