Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/10/2012, 02:46
alyciashape
 
Fecha de Ingreso: abril-2012
Mensajes: 590
Antigüedad: 12 años, 6 meses
Puntos: 58
Problemilla con clase y fopen. Poner el puntero al inicio

He creado una miniclase para crear un fichero log
Código PHP:
class log {
    var 
$fichero;
    var 
$fecha;
    function 
agrega($texto) {
        
$this->fichero  fopen("historial.log","a");
        
$this->fecha date("d-m-Y H:i:s \t");
        
fwrite($this->fichero$this->fecha $texto PHP_EOL);   
        
fclose($this->fichero);
    }
}
$log = new log;
//USO: $log->agrega("Nueva entrada de log"); 
Hasta ahí bien. el problema es que el log se escribe hacia abajo, y quisiera que las últimas entradas aparecieran arriba no abajo. Lo lógico es que se arreglaría cambiando el parámetro ya que a lo abre con el puntero al final.

El tema es que en PHP.net con los otros parámetros que abren el fichero con el puntero al inicio no me funcionan. Me sobreescriben siempre el texto, no funcionan igual que a.

He probado con r. Otra pega que tiene es que no te crea el fichero sino existe.
He probado con w. Dice que te trunca el fichero, no tengo ni idea de qué significa.
Y he probado también con x sino me equivoco.

No se puede hacer lo que quiero?

La otra solución que veo es meter las líneas actuales en una variable. Añadirlas al log y luego la nueva pero es una chapuza.

¿Alguna ayuda por favor?

Yo entiendo que lo que debería poner es "r+" pero no funciona como se espera.

Última edición por alyciashape; 25/10/2012 a las 02:53