从文本文件中读取特定行

3

可能是重复问题:
使用PHP从大文件中获取一行

我有一个包含大约200行内容的文本文件,我想从这个文本文件中读取特定的一行。我该如何做?

谢谢。


1
在发布新问题之前,请搜索现有的问题/答案。 - John Parker
3个回答

2

我确定这是一个重复的问题,但无论如何:

$file = new SplFileObject('file.txt');
$file->seek($lineNumber); // zero based
echo $file->current();

因为 middaparka 发现了重复,所以进行 CW 标记


2

未经测试。

function getline($file, $linenum, $linelen = 8192) {
    $handle = fopen($file, "r");

    if ($handle) {
        while (!feof($handle)) {
            $linenum -= 1;
            $buffer = fgets($handle, $linelen); // Read a line.
            if (!$linenum) return $buffer;
        }
        fclose($handle); // Close the file.
    }

    return -1;
}

1
抑制fopen的错误,然后假设一切都很好 - 高雅。 (还想知道在fopen行中"$file"周围的引号是用来干什么的。) - John Parker
啊,糟糕,引号和@符号是错误的,因为我从其他地方复制了基础代码 :) - orlp

0

类似这样的代码可以实现 - 从文件中读取每一行,直到找到目标行(最后一行确保如果没有找到目标行则返回 false)。

function getLine($file, $lineno)
{
    $line=false;
    $fp=fopen($file, 'r');
    while (!feof($fp) && $lineno--)
    {
        $line=fgets($fp);
    }
    fclose($file);
    return ($lineno==0)?$line:false;

}

继续,加入一个is_resource($fp)检查 - 你知道你想要的。 :-) - John Parker

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接