将 HTML 代码转换为纯文本,格式可用于文本文件 [重复]

Posted

技术标签:

【中文标题】将 HTML 代码转换为纯文本,格式可用于文本文件 [重复]【英文标题】:Converting HTML code to plain TEXT with formatting available to text-files [duplicate] 【发布时间】:2014-05-12 09:28:09 【问题描述】:

任务:获取 html 页面并仅保留其中的文本,并使用可用于简单文本的格式:因此,如果有 <br> 标签,如果有表格,我想将其转换为 /r/n - 我'希望在结果文本中保留此表的初始结构等。

内置的php函数strip_tags()不太符合我的要求,因为它会保留样式和脚本的内容,并且不会保留删除<br><table>和其他标签的格式。

我也阅读了stack question 'strip html,css from string',但没有我正在寻找的答案。

基本上我正在寻找一种将 HTML 页面呈现为 TXT 文件的方法(没有链接和图像)。是否可以?有没有图书馆在做这件事?

【问题讨论】:

【参考方案1】:

你可以用它做的一件事是,你可以做一个反向 Markdown。有很多 HTML 到 Markdown 的实现,它可以完成你想要的工作。他们只是将 HTML 转换为文本,包括中断等。

一个这样的实现是html2markdown。它使用 NodeJS,你只需要添加这个:

html2markdown("<h1>Hello markdown!</h1>")

至少,这会去除标签并将结果作为文本提供给你,可以很容易地被降价去除,因为它的字符数更少,比如#s 和---s。

在GitHub 中还有另一种 html2markdown 的 PHP 实现。语法也很简单:

$html = "<h3>Quick, to the Batpoles!</h3>";
$markdown = new HTML_To_Markdown($html);

这会给你带来:

echo $markdown; // ==> ### Quick, to the Batpoles!

这个插件也可以去除标签:

$html = '<span>Turnips!</span>';
$markdown = new HTML_To_Markdown($html, array('strip_tags' => true)); // $markdown now contains "Turnips!"    

【讨论】:

以上是关于将 HTML 代码转换为纯文本,格式可用于文本文件 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

PHP将网页内容转换为纯文本文件并保存为TXT

将 vue.js 获取的 html 文本转化为纯文本

使用 C++ 将 HTML 转换为纯文本

是否有将 HTML 转换为纯文本的功能?

将 HTML 项目符号转换为纯文本

jquery将HTML代码转换为纯文本[重复]