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

使用PHP Simple HTML DOM Parser提取指定元素及区域内带日期的ft00类文本

使用PHP Simple HTML DOM Parser处理指定HTML内容的解决方案

没问题,我来帮你搞定这两个需求,用PHP Simple HTML DOM Parser就能轻松实现。下面分步骤给你代码和详细解释:

1. 查找指定class的div元素并提取纯文本

首先确保你已经引入了PHP Simple HTML DOM Parser库(直接下载源码后include到项目里就行)。下面是通用实现代码,替换目标class名称即可复用:

// 引入Simple HTML DOM Parser库
include('simple_html_dom.php');

// 加载HTML内容(支持本地字符串或远程URL)
$html = str_get_html('你的目标HTML内容');

// 查找所有带有指定class的div元素
$targetDivs = $html->find('div.your-target-class');

// 遍历提取纯文本内容
foreach ($targetDivs as $div) {
    // 提取纯文本,strip_tags确保清除所有HTML标签
    $textContent = strip_tags($div->innertext);
    // 输出或按需处理内容
    echo trim($textContent) . PHP_EOL;
}

// 清理资源
$html->clear();

2. 提取“Work Experience”与“EDUCATION AND TRAINING”之间的class为ft00的p元素中的日期文本

针对你提供的HTML片段,我们需要先定位到“Work Experience”标记点,再遍历后续元素直到遇到“EDUCATION AND TRAINING”,筛选出符合要求的日期内容。代码如下:

include('simple_html_dom.php');

// 你的HTML片段内容
$htmlStr = '<p class = "ft00">Introduction</p> <p class = "ft00">John Smith</p> <p class = "ft02">Email:</p> <p class = "ft00">John@gmail.com</p> <p class = "ft00">Work Experience</p> <p class = "ft00">27 July 2017</p> <p class = "ft02">ABC Company</p> <p class = "ft00">19 May 201...</p>';

$html = str_get_html($htmlStr);

// 先找到"Work Experience"对应的p元素(用文本匹配比索引更可靠)
$workExpMarker = null;
foreach($html->find('p.ft00') as $p) {
    if(trim($p->plaintext) === 'Work Experience') {
        $workExpMarker = $p;
        break;
    }
}

if($workExpMarker) {
    $dateTexts = [];
    // 从标记点的下一个兄弟元素开始遍历
    $nextElement = $workExpMarker->next_sibling();
    
    while($nextElement) {
        // 到达"EDUCATION AND TRAINING"则停止遍历
        if(trim($nextElement->plaintext) === 'EDUCATION AND TRAINING') {
            break;
        }
        
        // 筛选class为ft00的p元素,且内容符合日期格式
        if($nextElement->tag === 'p' && $nextElement->class === 'ft00' && preg_match('/\d{1,2} [A-Za-z]+ \d{4}/', $nextElement->plaintext)) {
            $dateTexts[] = trim($nextElement->plaintext);
        }
        
        // 移动到下一个兄弟元素
        $nextElement = $nextElement->next_sibling();
    }
    
    // 输出提取到的日期内容
    print_r($dateTexts);
}

$html->clear();

关键说明:

  • 用文本匹配定位“Work Experience”,避免了索引定位因HTML结构变化失效的问题
  • 用正则表达式/\d{1,2} [A-Za-z]+ \d{4}/识别日期格式,确保只提取符合要求的内容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 03:31:14