获取 txt 文件中两个行号之间的文本行 [duplicate]

Get lines of text between two line numbers inside txt file [duplicate]

提问人:Tray Scott 提问时间:10/25/2020 最后编辑:mickmackusaTray Scott 更新时间:10/27/2020 访问量:606

问:

我的目标是从文本行数 10 到数字 15 获取每一行文本。

文本文件:

enter image description here

我的代码 :

$file = fopen('no_list.txt', 'r');
while ((feof ($file) === false) )
{
    $i=1;
    while ((feof ($file) === false) && $i<10 && $i<15 )
    {
        fgets($file);
        $i++;
    }
    $splitdata = fgets($file);
    echo $splitdata;
}
fclose($file);

该代码仅返回第 15 行的数据。任何建议,我的代码中缺少什么?或任何其他解决方案?

PHP 文件 切片

评论

0赞 mickmackusa 10/27/2020
为了获得最佳效率,您将阅读到第一行所需的行,然后如果您正在执行循环,请在回显最后一行所需的文本后中断循环。seek

答:

1赞 jibsteroos 10/25/2020 #1

你可以使用 file() 将你的文本文件读入一个数组中,并过滤掉你需要的行:

<?php

$lines = file('test.txt');
$start = 10;
$end = 15;

for($i = $start-1; $i<=$end-1; $i++) {
    $store[] = $lines[$i];
}

Array 包含您选择要筛选的每行的元素,介于 和$store$start$end;

0赞 AbraCadaver 10/25/2020 #2

更轻松地将文件读入数组并切出所需的内容:

$splitdata = array_slice(file('no_list.txt'), 9, 6);

$splitdata将是一个数组,所以循环或它到:implodeecho

echo implode(', ', $splitdata);