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

如何使用PHP读取外部文本文件中两个指定单词之间的值

嘿,这个需求我刚好折腾过,给你分享几个实用的PHP实现方案,灵活度拉满:

方案一:正则表达式(最灵活通用)

这是处理这类文本提取需求的首选,尤其是当文本格式可能有小变动的时候。思路是先定位到目标行,再用正则精准匹配两个关键词之间的数字:

// 读取TXT文件所有行到数组(跳过空行和换行符,节省内存)
$lines = file('your_target_file.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);

$extractedNumber = null;

foreach ($lines as $line) {
    // 先筛选出开头符合要求的目标行
    if (str_starts_with($line, 'The greatest expected 3 hr Kp for')) {
        // 正则匹配"is "和" (below"之间的数字(支持整数和小数)
        // 注意:如果实际文本里的空格、符号有差异,要调整正则里的匹配规则
        if (preg_match('/is (\d+(?:\.\d+)?) \(below/', $line, $matches)) {
            $extractedNumber = $matches[1];
            break; // 找到目标值就跳出循环,不用继续遍历
        }
    }
}

// 输出结果
if ($extractedNumber !== null) {
    echo "提取到的数字:" . $extractedNumber;
} else {
    echo "未找到符合条件的目标值";
}

正则说明:(\d+(?:\.\d+)?) 用来捕获整数或小数,\(below 是转义后的"(below"(因为括号在正则里是特殊字符,必须转义),确保精确匹配关键词边界。

方案二:字符串分割(简单直观)

如果你的TXT文本格式完全固定,不会有空格、符号的变动,用字符串分割会更简单,不需要写正则:

$lines = file('your_target_file.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
$extractedNumber = null;

foreach ($lines as $line) {
    if (str_starts_with($line, 'The greatest expected 3 hr Kp for')) {
        // 第一步:截取"is "之后的所有内容
        $afterIs = explode('is ', $line, 2)[1] ?? '';
        // 第二步:截取"(below"之前的内容,就是我们要的数字
        $extractedNumber = explode(' (below', $afterIs, 2)[0] ?? '';
        
        // 额外验证:确保提取到的是数字
        if (!is_numeric($extractedNumber)) {
            $extractedNumber = null;
        }
        break;
    }
}

// 输出结果
echo $extractedNumber !== null ? "提取到的数字:{$extractedNumber}" : "未找到目标值";

这个方法的好处是代码易懂,新手也能快速上手;缺点是对文本格式的变动容错率低,比如如果"is"后面多了个空格,或者"(below"前面少了空格,就会提取失败。

一些实用注意事项
  • 确保PHP有目标TXT文件的读取权限,文件路径要写对(可以用绝对路径避免路径问题);
  • 如果文件很大,用file()逐行处理比file_get_contents()一次性把整个文件读进内存更高效;
  • 可以提前用file_exists()和is_readable()检查文件是否存在且可读,避免报错;
  • 如果目标行的开头匹配有误差,可以用str_contains()替代str_starts_with(),但这样可能会匹配到非目标行,需要根据实际情况调整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:41:45