Try adding number of bytes to read.

   $line = fgets($fp, 4096);

>
>> * Thus wrote Scott Miller ([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?
>> >
>> > ...
>> >
>> > $fcontents = file($filename);
>>
>> This will make your script consume lots of memory, and is very
>> inefficient.
>>
>> You'd be better of using the unix tail command:
>>
>> $fp = popen("/usr/bin/tail -$limit $file", 'r');
>> if (! $fp ) {
>>   echo 'unable to pipe command';
>> }
>> while (!feof($fp) ) {
>>   $line = fgets($fp);
>>   print $line;
>> }
>>
>> Of course if you're simply going to output the results a simple:
>>
>>   system("/usr/bin/tail -$limit $file");
>>
>> Would do the job nicely.
>>
>>
>> Curt
>> --
>> First, let me assure you that this is not one of those shady pyramid
> schemes
>> you've been hearing about.  No, sir.  Our model is the trapezoid!
>>
>> --
>
> I've changed my script to the following:
>
> <?php
>
> $file ="/var/log/radius.log";
>
> $fp = popen("/usr/bin/tail -$limit $file", 'r');
> if (! $fp ) {
>   echo 'unable to pipe command';
> }
> while (!feof($fp) ) {
>   $line = fgets($fp);
>   print $line;
> }
> ?>
>
> And now get the following errors:
>
> Warning: Wrong parameter count for fgets() in /var/www/html/logs2.php on
> line 10
>
> I get this over and over and over (like it's producing the error once per
> line in the log file).
>
> Thanks,
> Scott

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

Reply via email to