DOMDocument可解析HTML字符串或文件,结合DOMXPath提取元素,需处理编码避免乱码。1.用loadHTML()加载字符串并禁用隐式标签;2.用loadHTMLFile()读取本地文件或file_get_contents()获取远程内容;3.DOMPXPath支持CSS选择器式查询,如按class或id提取节点;4.中文乱码可通过mb_convert_encoding或添加meta charset解决。

在PHP中读取和解析HTML内容,DOMDocument 是一个非常实用的内置类。它能将HTML字符串或文件加载为结构化的文档对象模型(DOM),便于遍历、修改和提取所需数据。
如果已有HTML内容(如从网络请求获取的页面源码),可以直接用 loadHTML() 方法加载:
$html = '<div class="content"><p>这是第一段</p><p>这是第二段</p></div>';
$dom = new DOMDocument();
// 加载HTML,禁用内部错误避免警告
libxml_use_internal_errors(true);
$dom->loadHTML($html, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);
libxml_clear_errors();
// 获取所有 p 标签
$paragraphs = $dom->getElementsByTagName('p');
foreach ($paragraphs as $p) {
echo $p->nodeValue . "\n"; // 输出:这是第一段 这是第二段
}
注意:使用 LIBXML_HTML_NOIMPLIED 和 LIBXML_HTML_NODEFDTD 可防止自动添加 html、body 等隐式标签,保持原始结构。
若需解析本地保存的HTML文件,可用 loadHTMLFile() 方法:
PHP与MySQL程序设计3
本书是全面讲述PHP与MySQL的经典之作,书中不但全面介绍了两种技术的核心特性,还讲解了如何高效地结合这两种技术构建健壮的数据驱动的应用程序。本书涵盖了两种技术新版本中出现的最新特性,书中大量实际的示例和深入的分析均来自于作者在这方面多年的专业经验,可用于解决开发者在实际中所面临的各种挑战。 本书内容全面深入,适合各层次PHP和MySQL开发人员阅读,既是优秀的学习教程,也可用作参考手册。
253
查看详情
$dom = new DOMDocument();
libxml_use_internal_errors(true);
if ($dom->loadHTMLFile('example.html')) {
$titles = $dom->getElementsByTagName('h1');
foreach ($titles as $title) {
echo $title->nodeValue . "\n";
}
} else {
echo "无法加载文件";
}
对于远程URL,建议先用 file_get_contents() 获取内容再加载:
$url = 'https://example.com/page.html'; $html = file_get_contents($url); $dom = new DOMDocument(); libxml_use_internal_errors(true); $dom->loadHTML($html, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);
DOMDocument 本身不支持CSS选择器,但可结合 DOMXPath 实现灵活查询:
$dom = new DOMDocument();
libxml_use_internal_errors(true);
$dom->loadHTML($html, LIBXML_HTML_NOIMPLIED);
$xpath = new DOMXPath($dom);
// 查找 class="content" 的元素
$nodes = $xpath->query('//div[@class="content"]');
foreach ($nodes as $node) {
echo $node->textContent;
}
// 查找 id="main"
$main = $xpath->query('//[@id="main"]')->item(0);
if ($main) {
echo $main->nodeValue;
}
若HTML含中文出现乱码,确保在加载前声明编码:
$html = mb_convert_encoding($html, 'HTML-ENTITIES', 'UTF-8'); $dom->loadHTML($html, LIBXML_HTML_NOIMPLIED);
或在HTML开头添加编码声明:
$html = '<!DOCTYPE html><meta charset="UTF-8">' . $html;基本上就这些。DOMDocument 配合 DOMXPath 能高效解析结构化HTML,适合做网页抓取、内容提取或模板处理。虽语法略底层,但稳定且无需额外扩展。
以上就是php如何阅读html_PHP中读取/解析HTML内容(DOMDocument)方法的详细内容,更多请关注其它相关文章!
# css
# 第二段
# 结构化
# 书中
# 两种
# 选择器
# 程序设计
# 本书
# 加载
# 这是
# html文件
# ai
# 中文乱码
# 编码
# node
# html
# php
# html代码
# css选择器
# 朝阳企业网站建设报价
# 线上营销推广有哪些平台
# 营销推广对文旅的影响
# seo怎么这么难做
# 深圳南山区网站建设
# 呼和浩特市企业网站推广
# dedecms的seo标题
# 沈丘网站优化报价
# 移动优化网站怎么做
# 销售商品推广网站方案
# 单引号
相关栏目:
【
Google疑问12 】
【
Facebook疑问10 】
【
优化推广96088 】
【
技术知识133117 】
【
IDC资讯59369 】
【
网络运营7196 】
【
IT资讯61894 】
相关推荐:
J*aScript桌面应用_Electron多进程架构实战
邦丰播放器频道搜索设置
《土豆雅思》修改密码方法
手机自动关机是怎么回事?如何修复?手机异常关机的原因排查与修复技巧
ExcelSCAN与LAMBDA如何创建自定义移动平均函数_SCAN实现任意窗口期移动平均计算
Golang如何使用crypto/md5生成哈希_Golang MD5哈希生成方法
PHP与SQL实践:高效实现数据复制与特定列值修改
iPhone14无法连接蓝牙设备如何解决
英国搜索:多数英国人认为语言搜索是未来搜索
解决Pandas DataFrame高度碎片化警告:高效创建多列的策略
c++如何使用std::thread::join和detach_c++线程生命周期管理
《下一站江湖2》大雪山加入方法
c++如何链接Boost库_c++准标准库的集成与使用
Excel如何设置动态下拉菜单_Excel表格下拉选项快速方法
铁路12306官网入口 铁路12306中国铁路官网登录首页
德邦物流在线查询系统 德邦快递货物运输追踪
抖音评论无法发送如何修复 抖音评论功能操作指南
Win11怎么设置分辨率 Win11显示设置调整分辨率及刷新率修改
WooCommerce购物车:强制显示所有交叉销售商品教程
mysql如何回滚事务_mysql ROLLBACK事务回滚方法
《幻兽帕鲁》手游帕鲁捕捉技巧分享
有道AI翻译入口 智能写作官方网站入口
优化2xN网格最大路径和的动态规划算法实践
如何在CSS中使用伪类:valid实现表单验证提示_结合:valid改变边框颜色
poki官网最新入口 poki小游戏大全入口
动漫岛在线动漫网 动漫岛动漫在线观看官方入口
Flash AS3.0简易相册制作
Highcharts雷达图轴线交点数值标注指南
漫蛙漫画官方网站使用_漫蛙manwa网页版在线入口教程
edge浏览器怎么修改语言为中文_Edge界面语言切换教程
windows10怎么关闭自动安装应用_windows10禁止推广应用下载
广州地铁app准妈咪徽章领取方法
Win10锁屏时间怎么设置 Win10调整自动锁屏时间方法
在J*a中如何实现在线问答与评分系统_问答评分项目开发方法说明
抖音号已注销怎么解绑企业认证?不解绑企业认证会怎样?
AO3中文入口稳定分享_AO3官网HTTPS看文详解
excel怎么计算平均值 excel平均函数*ERAGE使用教学
composer licenses 命令:如何检查项目依赖的许可证?
淘口令快速解析技巧
TikTok收藏夹无法删除视频如何解决 TikTok收藏管理优化方法
CSS动画如何实现图标旋转并放大_transform rotate scale @keyframes实现
CSS如何控制元素外边距_margin实现布局间隔
TikTok网页版入口快速访问 TikTok官网账号登录方法
《全民k歌》网页版最新登录入口一览
鸣潮历史学家灯塔位置一览
TikTok私信无法发送表情怎么办 TikTok消息表情发送修复方法
C++ switch case字符串_C++如何实现字符串switch匹配
使用CSS :has() 选择器实现父元素样式控制:从子元素反向应用样式
解决C#跨线程访问XML对象的异常 安全的并发XML处理模式
Coolpad5890 ROM刷机包
2025-11-17
运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。