Como tip para todos, el usar file, carga todo el archivo en memoria, asi que es ineficiente si los archivos son grandes (imaginen un archivo de 20 MB). Les comparto esta funcion que usa fopen/fseek/fget para regresar la ultima linea del archivo, es bastante rapida y no importa el tamaño del archivo:
Código PHP:
<?php
function readLastLine($file) {
$fp = @fopen($file, "r"); // Abrimos en modo lectura
$pos = -1; // Empezamos en el ultimo Bit
$t = " "; // Creamos el buffer para regresar
while ($t != "\n") { // Ciclamos hasta que encontremos un \n = nueva linea
if (!fseek($fp, $pos, SEEK_END)) { // Nos movemos hasta el bit $pos
$t = fgetc($fp); // Obtenemos un caracter del archivo
$pos = $pos - 1; // Restamos 1 bit a $pos
} else { // Si no pudimos movernos al final
rewind($fp); // regresamos el puntero
break; // Salimos del loop
}
}
$t = fgets($fp); // Obtenemos el ultimo caracter desde la posicion actual
fclose($fp); // Cerramos el puntero al archivo
return $t; // Regresamos la salida
}
?
Saludos