You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用PHP Simple DOM Parser遍历指定HTML代码?

使用PHP Simple DOM Parser遍历目标HTML的指南

嘿,我来帮你搞定用PHP Simple DOM Parser解析这段HTML的事儿!咱们一步步拆解,把每个部分的内容都精准提取出来。

第一步:准备工作

首先得确保你已经引入了PHP Simple DOM Parser。如果是直接下载的库文件,就用require_once引入;如果用Composer管理依赖,直接通过autoload加载就行。示例代码如下:

// 引入PHP Simple DOM Parser(根据你的文件实际路径调整)
require_once('simple_html_dom.php');

// 把目标HTML字符串赋值给变量
$html = '<div class="reviews-summary__stats"> <div class="reviews-summary"> <p class="reviews-title">C</p> <ul class="rating"> <li class="rating__item rating__rated"></li> <li class="rating__item rating__rated"></li> <li class="rating__item rating__rated"></li> <li class="rating__item "></li> <li class="rating__item "></li> </ul> </div> <div class="reviews-summary"> <p class="reviews-title">C...</p></div></div>';

第二步:加载HTML并遍历核心元素

接下来咱们加载HTML内容,然后遍历所有的.reviews-summary容器——这是咱们要处理的核心模块:

// 加载HTML字符串到DOM对象
$dom = str_get_html($html);

// 遍历每个reviews-summary模块
foreach ($dom->find('.reviews-summary') as $summary) {
    // 提取reviews-title的文本内容
    $title = $summary->find('.reviews-title', 0)->plaintext;
    echo "评分标题: " . $title . "\n";

    // 处理星级评分(注意第二个模块没有rating列表,所以先判断是否存在)
    $ratingList = $summary->find('.rating', 0);
    if ($ratingList) {
        // 统计已点亮的星级数量(带rating__rated类的li元素)
        $ratedCount = count($ratingList->find('.rating__rated'));
        echo "已评星级数量: " . $ratedCount . "/5\n";
    } else {
        echo "该模块无星级评分\n";
    }
    echo "---\n";
}

代码细节解释

  • $dom->find('.reviews-summary'):通过类名定位所有reviews-summary容器,返回一个元素数组,咱们用foreach逐个处理。
  • $summary->find('.reviews-title', 0):在当前summary容器内找到第一个reviews-title元素,用plaintext获取它的纯文本内容。
  • $ratingList = $summary->find('.rating', 0):先检查当前模块是否存在rating列表,避免因不存在元素导致报错;存在的话再统计其中带rating__rated类的li数量,就是已点亮的星级数。

运行结果

执行上面的代码后,你会得到这样的输出:

评分标题: C
已评星级数量: 3/5
---
评分标题: C...
该模块无星级评分
---

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:35:46