Ver Mensaje Individual
  #10 (permalink)  
Antiguo 07/10/2007, 11:15
Avatar de GatorV
GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Leer ultima linea de un archivo

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$posSEEK_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