[EMAIL PROTECTED] (Scott Miller) wrote in
news:[EMAIL PROTECTED]: 

> I have a text file (log file) that I want to be able to read the last
> 30 or 40 lines of.  I've created the code below, but since this file
> is so large (currently 8 MB) it won't work.  The code works on smaller
> files, but not this one.  Can someone look at this below and tell me
> where I went wrong? 
> 
> <?php
> 
> $filename ="/var/log/radius.log";
> 
> $myFile = fopen($filename, "r"); //open the file for reading, file
> pointer will be at the beginning of the file
> 
> if(! $myFile){            // Make sure the file was opened
> successfully 
> 
> print ("File could not be opened.");
> 
> exit;
> }
> 
> $fcontents = file($filename);
> 
>   $limit = 30;
> 
> for ($i = 0; $i < $limit; $i++){ // while $i is less than 30
> 
>     $line = $fcontents[$i];  // assign value of array element to a
>     variable 
> 
>       if($line != ""){  // if the line from the file is not blank
>       print it 
>         echo "$line \n";
>           }
> 
>      }
> 
> fclose($myFile);
> 
> ?>
> 
> Thanks,
> Scott Miller
> 
> 
> 

Your problem is likely with the following line, which reads the *entire* 
file into an array:

$fcontents = file($filename);

You're also opening and closing a file handle, but never using it. Use 
fread after fopen instead of the "file" function.  You'll have to decide on 
a byte limit instead of a line limit, though.

http://php.net/manual/en/function.fread.php

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to