如何在文本文件中读取和回显特定行

时间:2014-07-23 14:04:19

标签: php

我是PHP的新手。有人能给我看一个如何读取文件的特定行并用PHP回显它的例子吗?

例如,我有一个名为 note.txt 的文件:

line1
line2
line3
line4
line5
line6

从这个文件中我只想读取并回显line2直到第5行。

先谢谢你的回答

2 个答案:

答案 0 :(得分:0)

您可以使用file功能

示例:

$myFile = "tmp.txt";
$lines = file($myFile);//file in to an array
echo $lines[1]; //line 2

你需要从2开始循环 - > 5得到所有这些行

答案 1 :(得分:0)

除非文件的大小很大,否则可以使用函数file()file()会将文件的行作为数组返回。

示例:

$start = 1; // array indexes are starting with zero
$end = 4;   // array indexes are starting with zero

$lines = file('filename'); // get lines of file as an array
for($i = $start; $i <= $end && $i < count($lines); $i++) {
    echo $lines[$i];
}

但是,如果文件的大小很大,上面的代码将占用大量内存(〜与文件大小一样多),因为file()会将整个文件读入数组。如果您正在处理大文件,可以使用fopen()并使用fgets()遍历文件的行,除非您到达起始行,读取结束行并最终关闭文件:

$ln = 0;
$start = 1;
$end = 4;  

$fd = fopen(__FILE__, 'r'); // open the file

while(true) {
    $line = fgets($fd); // read next line
    if(!$line ||  $ln === $end + 1) {
        break;
    }
    if($ln >= $start && $ln <= $end) {
        echo $line;
    }
    $ln++;
}

fclose($fd); // close the file