Re: How to jump to line number in large file

From: Date: Sat, 05 Apr 2008 11:06:18 +0000
Subject: Re: How to jump to line number in large file
References: 1 2 3  Groups: php.general 
Request: Send a blank email to php-general+get-272564@lists.php.net to get a copy of this message
Thanks for the heads up on fgetc() incrementing by one. I hadn't actually tested that code yet, I was using the original fseek($handle,$pos). strpos would be ideal but it needs to work on a string and not a file - I don't want to load a 100Mb file into memory if I don't have to. Perhaps I should test how quick the fgets() and ftell() method is because at least it loads in one line at a time. Does anybody know any other ways to go about the problem?
Haven't read the rest of the thread, and so going by the subject alone, fgets() finishes when it encounters a newline, so you can use this wondrous fact to seek to a specific line: <?php
    $fp  = fopen('filename', 'r');
    $num = 18; // Desired line number
    for ($i=0; $i<$num; $i++)
        $line = fgets($fp);
    echo $line;
?> It works because fgets() stops when it encounters a newline (\n). So it's just a case of counting the calls to fgets(). -- Richard Heyes Employ me: http://www.phpguru.org/cv

« previous php.general (#272564) next »