2 // vim: set binary noeol et sw=4 sts=4 :
5 // Lucarella, Schein, Arena
7 // Creado: Leandro Lucarella (mar may 3 23:34:43 ART 2005)
11 require_once 'lib/file.php';
14 * Abre el archivo de log.
16 * @return false si hubo error, el file pointer del archivo si se abrió bien.
18 function file_log_open($user)
20 return fopen("data/log.$user.csv", 'r');
24 * Obtiene el próximo mensaje del log.
26 * @return array con (fecha, mensaje) o false si no hay más.
28 function file_log_next($fp)
30 return fgetcsv($fp, 4096);
34 * Se posiciona en un mensaje de log determinado.
36 * @return false si hubo error.
38 function file_log_seek($fp, $pos)
40 while (!feof($fp) and $pos--) fgetcsv($fp, 4096);
45 * Se posiciona en el primer mensaje de log que sea posterior a $fecha_desde.
47 * @return posición del archivo donde empiezan los mensajes posteriores.
49 function file_log_seek_fecha($fp, $fecha_desde)
53 while ($row = fgetcsv($fp, 4096))
55 if ($row[0] < $fecha_desde)
62 fseek($fp, $seek); // Vuelvo al principio del registro.
70 * Cierra el archivo de log
72 * @return false si hay error.
74 function file_log_close($fp)
80 * Obtiene la cantidad de mensajes de log que hay para un usuario.
81 * Si se especifica $fecha_desde, se cuentan sólo los posteriores a esa fecha.
83 * @return cantidad de mensajes de log.
85 function file_log_count($user, $fecha_desde = null)
87 if (($fp = file_log_open($user)) === false) return false; // error
88 if ($fecha_desde) file_log_seek_fecha($fp, $fecha_desde);
90 while ($row = fgetcsv($fp, 4096)) $count++;
96 * Agrega un nuevo mensaje de log.
98 * @return bool false si hay error.
100 function file_log_add($user, $msg)
102 return fappendcsv("data/log.$user.csv", array(time(), $msg));