php提取html文字存入数据库需先用domdocument解析(如loadhtml配合getelementsbytagname),再用textcontent和getattribute获取文本与链接,最后通过pdo预处理安全入库。

PHP 怎么把 HTML 里的文字提取出来存进数据库
不能直接“把 HTML 中的文字链接数据库”——HTML 是静态标记,数据库要的是结构化数据。你真正需要的,是「从 HTML 字符串里抽取出纯文本(或带链接的文本),再用 PHP 插入 mysql 或其他数据库」。
常见错误现象:mysqli_query($conn, $html_string) 直接执行失败;或者存进去一堆 <p></p><a href="..."></a>
strip_tags() 不加引号(合法 HTML)DOMDocument 虽稍重,但它是浏览器级解析器,和 chrome 渲染 HTML 的底层逻辑一致——这点代价,换来的稳定性值得。
真正难的不是提取,而是定义清楚:你要存的是“所有可见文字”,还是“仅超链接文字”,以及“href 是否要验证格式/去重/归一化”。这些逻辑不在 PHP 函数里,得你自己写判断。
$html = '<p>访问 <a href="https://php.net">PHP 官网</a> 学习更多。</p><p><span>立即学习</span>“<a href="https://pan.quark.cn/s/7fc7563c4182" style="text-decoration: underline !important; color: blue; font-weight: bolder;" rel="nofollow" target="_blank">PHP免费学习笔记(深入)</a>”;</p>'; $dom = new DOMDocument(); libxml_use_internal_errors(true); $dom->loadHTML(mb_convert_encoding($html, 'HTML-ENTITIES', 'UTF-8')); $links = $dom->getElementsByTagName('a'); foreach ($links as $a) { $text = trim($a->textContent); $href = $a->getAttribute('href'); // 然后用 mysqli_real_escape_string() 或 PDO 预处理插入数据库 }