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

如何在PHP(Laravel)中从指定行(如AT前缀行)读取TXT文件并完善脚本?

PHP从上传TXT文件的指定前缀行开始读取内容

你可以修改脚本,通过逐行读取的方式定位到以AT开头的行,再收集从该行开始的所有内容。这种方式既能精准获取目标内容,还能避免一次性读取大文件占用过多内存。

修改后的代码如下:

$data = $request->file('file');
$filetmp = $data->getRealPath();

// 打开文件准备逐行读取
$fileHandle = fopen($filetmp, "r");
$targetContent = '';
$startCollecting = false;

if ($fileHandle) {
    // 逐行读取直到文件结束
    while (($line = fgets($fileHandle)) !== false) {
        // 判断当前行是否以AT开头(trim去掉首尾空白,避免行首空格导致匹配失败)
        if (str_starts_with(trim($line), 'AT')) {
            $startCollecting = true;
        }
        
        // 开始收集后,将当前行加入目标内容
        if ($startCollecting) {
            $targetContent .= $line;
        }
    }
    
    fclose($fileHandle);
}

dd($targetContent);

关键说明:

  • 用fgets()逐行读取文件,适合处理大文件,不会一次性加载全部内容到内存
  • str_starts_with()是PHP 8.0及以上版本的函数,若你的PHP版本较低,可替换为substr(trim($line), 0, 2) === 'AT'
  • 若能确定目标行首没有空白字符,可以去掉trim($line)直接判断

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 19:46:00