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