PHP - Returning the last line in a file?

waxical picture waxical · Jun 30, 2009 · Viewed 45.8k times · Source

I'm guessing it's fgets, but I can't find the specific syntax. I'm trying to read out (in a string I'm thinking is easier) the last line added to a log file.

Answer

Matthew Scharley picture Matthew Scharley · Jun 30, 2009

The simplest naive solution is simply:

$file = "/path/to/file";
$data = file($file);
$line = $data[count($data)-1];

Though, this WILL load the whole file into memory. Possibly a problem (or not). A better solution is this:

$file = escapeshellarg($file); // for the security concious (should be everyone!)
$line = `tail -n 1 $file`;