2

我正在寻找从 html 获取纯文本。我应该选择哪一个,php strip_tags还是simplehtmldom明文提取?

simplehtmldom 的一个优点是支持无效的 html,这本身就足够了吗?

4

5 回答 5

12

strip_tags就足够了。

于 2011-12-05T19:05:51.580 回答
3

由于您提到的原因,您可能应该使用 smiplehtmldom,并且 strip_tags 也可能会在脚本/样式块中留下非文本元素,例如 javascript 或 css

您还可以从未显示的元素中过滤文本(inline style=display:none)

也就是说,如果 html 足够简单,那么 strip_tags 可能会更快并且会完成相同的任务

于 2011-12-05T19:06:37.533 回答
3

从 HTML 中提取文本很棘手,因此最好的选择是使用 Html2Text 之类的库。它是专门为此目的而建造的。

https://github.com/mtibben/html2text

使用作曲家安装:

composer require html2text/html2text

基本用法:

$html = new \Html2Text\Html2Text('Hello, &quot;<b>world</b>&quot;');

echo $html->getText();  // Hello, "WORLD"
于 2017-03-27T10:23:08.683 回答
0

如果您只想要页面的纯文本呈现,那么 strip_tags 更快更简单。但是,如果您想在该过程中对文本进行任何操作,从长远来看,simplehtmldom 将为您提供更好的服务。

于 2011-12-05T19:06:00.467 回答
0

您可能还想删除斜杠 stripslashes()

于 2017-02-27T08:42:49.863 回答