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

使用SimpleHTMLDOM提取页面并将多表格合并为单个表格

解决方案:合并目标div内的多个表格

我来帮你搞定这个多表格合并的问题!你已经成功定位到目标div了,接下来只需要把里面的多个表格整合成一个就行,我给你调整了代码,还修复了原代码里的小问题(比如$link后面多的括号),直接就能用:

include_once('simple_html_dom.php'); 
$curl = curl_init(); 
$link = "http://example.com/q/?id=123456"; 
curl_setopt($curl, CURLOPT_URL, $link); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 
$file_contents = curl_exec($curl); 
curl_close($curl); // 记得关闭curl资源,避免内存泄漏

$html = str_get_html($file_contents); 
$targetDiv = $html->find('div[id=hCStatus_result]', 0);

// 检查是否成功获取到目标div
if ($targetDiv) {
    // 创建一个新的空表格,用来存放合并后的内容
    $mergedTable = $html->createElement('table');
    $hasAddedHeader = false;

    // 遍历目标div里的所有表格
    foreach ($targetDiv->find('table') as $table) {
        // 处理表头:只保留第一个表格的表头(避免重复显示)
        $thead = $table->find('thead', 0);
        if ($thead && !$hasAddedHeader) {
            $mergedTable->appendChild($thead);
            $hasAddedHeader = true;
        }

        // 处理表格主体内容
        $tbody = $table->find('tbody', 0);
        if ($tbody) {
            // 把tbody里的每一行都移到新表格中
            foreach ($tbody->find('tr') as $row) {
                $mergedTable->appendChild($row);
            }
        } else {
            // 如果表格没有tbody标签,直接查找所有行
            foreach ($table->find('tr') as $row) {
                // 跳过重复的表头行(如果是第一个表格的表头行则保留)
                if (!$hasAddedHeader && $row->find('th', 0)) {
                    $mergedTable->appendChild($row);
                    $hasAddedHeader = true;
                } elseif ($hasAddedHeader || !$row->find('th', 0)) {
                    $mergedTable->appendChild($row);
                }
            }
        }
    }

    // 输出合并后的完整表格
    echo $mergedTable->innertext;
} else {
    echo "未找到目标div,请检查选择器是否正确";
}

代码关键说明:

  • 资源释放:添加了curl_close($curl),避免curl资源占用内存
  • 表头去重:只保留第一个表格的表头,防止合并后出现重复表头
  • 兼容两种表格结构:既支持带<thead>/<tbody>标准结构的表格,也支持直接用<tr>的简单表格
  • 元素操作:通过SimpleHTMLDOM的createElement和appendChild方法直接操作DOM元素,比字符串拼接更可靠

内容的提问来源于stack exchange,提问作者MD ZAKIR ALI

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:14:06