🗣 Wd提问: php simple html dom
🤖 Ai回答: PHP Simple HTML DOM Parser 是一个用于解析 HTML 文档的 PHP 库,它允许你像操作 DOM 一样轻松地提取和修改 HTML 内容。它的语法类似于 jQuery,非常直观易用。
🚀 安装方法
方法一:下载源码(推荐初学者)
1、访问官方 GitHub 仓库:https://github.com/simplehtmldom/simplehtmldom
2、下载 `simple_html_dom.php` 文件。
3、在你的 PHP 项目中包含该文件:
php
include_once('simple_html_dom.php');
⚠️ 注意:该项目已不再积极维护,最新版本为 v1.9.1(2020 年),但依然广泛使用。
✅ 基本用法示例
1、加载 HTML 字符串或 URL
php
// 从字符串加载
$html = str_get_html('<div class=contentHello World</div');
// 或从 URL 加载
$html = file_get_html('https://65.hk');
if (!$html) {
die('无法加载页面');
}
2、查找元素(类似 jQuery 选择器)
php
// 获取第一个 <div
$div = $html-find('div', 0);
// 获取所有 <a 标签
$links = $html-find('a');
// 获取 class 为 title 的元素
$title = $html-find('.title', 0);
// 获取 id 为 header 的元素
$header = $html-find('header', 0);
// 获取带有特定属性的元素
$img = $html-find('img[alt=logo]', 0);
3、获取元素内容或属性
php
echo $div-plaintext; // 输出文本内容
echo $div-innertext; // 输出内部 HTML
echo $div-outertext; // 输出整个标签 HTML
// 获取属性
echo $link-href;
echo $img-src;
echo $element-attr['class'];
4、遍历元素
php
foreach ($html-find('a') as $link) {
echo $link-href 、' ' 、$link-plaintext 、\n;
}
5、修改 HTML
php
$div = $html-find('div.content', 0);
$div-innertext = 'New Content!';
$div-class = 'updated-content';
// 输出修改后的 HTML
echo $html;
6、清理内存(重要!)
php
$html-clear();
unset($html);
💡 每次使用完后记得清理,避免内存泄漏。
🛑 注意事项与替代方案
❗ 问题:
不再维护(最后一次更新在 2020 年)
可能不兼容最新 PHP 版本(如 PHP 8+)
对复杂/错误 HTML 处理能力有限
✅ 推荐替代方案:
1、DOMDocument + XPath(原生 PHP)
php
$dom = new DOMDocument();
@$dom-loadHTML($html); // @ 抑制警告
$xpath = new DOMXPath($dom);
$elements = $xpath-query('//div[@class=content]');
2、Guzzle + Symfony DomCrawler
bash
composer require guzzlehttp/guzzle symfony/dom-crawler
php
use Symfony\Component\DomCrawler\Crawler;
$crawler = new Crawler($html);
$crawler-filter('div.content')-each(function (Crawler $node) {
echo $node-text();
});
3、QueryPath / DiDOM(现代轻量级)
bash
composer require imangazaliev/didom
php
use DiDom\Document;
$doc = new Document($html);
$elements = $doc-find('div.content');
📌 总结
| 项目 | 优点 | 缺点 |
|
| Simple HTML DOM | 语法简单、jQuery风格、上手快 | 不再维护、性能一般、内存管理需手动 |
| DOMDocument + XPath | 原生支持、稳定可靠 | 语法较繁琐 |
| Symfony DomCrawler | 功能强大、现代、可配合 Guzzle | 需要 Composer |
| DiDOM | 轻量、快速、现代语法 | 社区较小 |
🧪 示例完整代码
php
<?php
include_once('simple_html_dom.php');
$html = str_get_html('<html<body<h1Hello</h1<p class=descThis is a test.</p</body</html');
$h1 = $html-find('h1', 0);
echo 标题: 、$h1-plaintext 、\n;
$desc = $html-find('.desc', 0);
echo 描述: 、$desc-plaintext 、\n;
$html-clear();
unset($html);
?
✅ 如果你是新手,想快速上手,可以先用 Simple HTML DOM;
✅ 如果是生产环境或长期项目,建议改用 DOMDocument 或 DiDOM / DomCrawler。
需要我帮你写一个抓取网页内容的实际例子吗?比如抓取某个新闻网站的标题和链接 😊
📣 商家广告:





0
IP地址: 69.93.6.8
搜索次数: 0
提问时间: 2025-11-10 21:03:49
🛒 域名购买:
qun.cx
691.net.cn
cwks.cn
lf.gs
8.hi.cn
kb.gs
pbbb.com.cn
05.gold
81.biz
souzhan.com.cn
❓️ 热门提问:
关键字营销与广告创意
清空搜索栏
常用的服务器
美国 vps cn2
购买 香港 主机
香港主机免费试用
蜘蛛池监控DNS劫持
云计算排名
cookie服务器
GMV广告投放代理
豌豆Ai站群搜索引擎系统
🌐 域名评估:
su.gx.cn
musk.beer
evtol.fit
uav.sd.cn
r.cq.cn
si.nx.cn
deepseek.ski
qkrs.cn
aaaa.yn.cn
su8.mo.cn
⛏ 最新挖掘:
凯里酸汤鱼
贵阳烤脑花
都匀毛尖茶
花溪牛肉粉
贵阳烤生蚝
贵阳烤豆腐
贵阳纸包鱼
贵阳特色菜
🖌 热门作画:
🤝 关于我们:
豌豆Ai
域名
建站
站群
留痕
推广
评估
源码
开发Ai
工具
日记
价格
加盟
广告
流量
留言
联系
🗨 加入群聊:
🔗 友情链接:
搜站网
Top U.S. search engines
ai提问
🧰 站长工具:
Ai工具 whois查询 搜索
📢 温馨提示:本站所有问答由Ai自动创作,内容仅供参考,若有误差请用“联系”里面信息通知我们人工修改或删除。
👉 技术支持:本站由豌豆Ai提供技术支持,使用的最新版:《豌豆Ai站群搜索引擎系统 V.25.10.25》搭建本站。