You need to enable JavaScript to run this app. PHP如何将HTML文本转换为纯文本变量 HTML2TEXT提取标签值问题求解
优惠活动
大模型
产品
解决方案
定价
更多

PHP如何将HTML文本转换为纯文本变量 HTML2TEXT提取标签值问题求解

HTML转纯文本及指定标签值提取实现方案

基础转换问题修复

你当前使用的Html2Text库默认会给加粗、标题类标签添加额外格式标记,若只需提取纯文本内容,可通过传入配置参数清空对应标签的格式化前后缀:

include 'Html2Text.php';

$html = "<p><b>without</b> using htmlspecialchars() function</p>";
// 传入配置禁用格式化标记,只保留纯文本内容
$options = [
    'bold_style' => '', // 清空b/strong标签的前后缀标记
    'italic_style' => '',
    'header_style' => '', // 清空h1~h6标签的前后缀格式标记
    'do_links' => 'none', // 不需要链接地址可禁用
    'drop_images' => true
];
$html2Text = new Html2Text($html, $options);
    
echo $html2Text->getText(); 
// 输出结果:without using htmlspecialchars() function

单独提取指定标签内容的实现思路

如果需要单独获取<b>、<h1>等标签的对应值而非整页转换结果,推荐以下两种方案:

  • 方案一:扩展Html2Text库
    直接修改库中对应标签的处理逻辑,新增公共属性存储指定标签的文本内容,转换完成后直接读取该属性即可获取对应值,适合需要同时完成整页转换和标签提取的场景。
  • 方案二:配合PHP原生DOMDocument类实现
    该方案无需修改第三方库代码,灵活性更高,示例代码如下:
$html = "<h1>测试标题</h1><p><b>without</b> using htmlspecialchars() function</p><b>另一个加粗内容</b>";
$dom = new DOMDocument();
// 禁用HTML结构不规范产生的报错
libxml_use_internal_errors(true);
// 处理中文编码问题
$dom->loadHTML(mb_convert_encoding($html, 'HTML-ENTITIES', 'UTF-8'));
libxml_clear_errors();

// 单独提取所有b标签内容
$boldTags = $dom->getElementsByTagName('b');
$boldContents = [];
foreach ($boldTags as $tag) {
    $boldContents[] = trim($tag->nodeValue);
}
// 输出所有加粗内容:Array ( [0] => without [1] => 另一个加粗内容 )
print_r($boldContents);

// 单独提取所有h1标签内容
$h1Tags = $dom->getElementsByTagName('h1');
$h1Contents = [];
foreach ($h1Tags as $tag) {
    $h1Contents[] = trim($tag->nodeValue);
}
// 输出所有h1内容:Array ( [0] => 测试标题 )
print_r($h1Contents);

组合方案

如果需要同时完成整页HTML转纯文本、以及指定标签值的单独提取,可先通过DOMDocument提取目标标签内容存储,再调用Html2Text完成整页转换即可。

内容的提问来源于stack exchange,提问作者RCeyda

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.19 02:36:03