Newsgroup: it.comp.www.php
Titolo: manipolare un file di log

Ciao a tutti,
Ammetto che non mi sono quasi mai applicato sui files di testo che
francamente non sopporto ;-)
perň devo manipolare un file di log con questo tracciato su piů righe.
25/03/2004 20:04:41 | 192.168.0.245 | campo |campo| ecc.... |
25/03/2004 20:04:41 | 192.168.0.245 | campo |campo| ecc.... |
25/03/2004 20:04:37 | 192.168.0.245 | campo |campo| ecc.... |
24/03/2004 20:04:41 | 192.168.0.245 | campo |campo| ecc.... |
vorrei adesso suddividere le diverse righe per data e cioč:
25/03/2004
25/03/2004 20:04:41 | 192.168.0.245 | campo |campo| ecc.... |
25/03/2004 20:04:37 | 192.168.0.245 | campo |campo| ecc.... |
24/03/2004
24/03/2004 20:04:41 | 192.168.0.245 | campo |campo| ecc.... |
per farmi la lista ho usato questa funzione:
function F_viewLog($type) {
 global $G_PATH,$CONF;
 $filename = $G_PATH . "/logs/" . $type . ".log";
 $A = file($filename);
 rsort($A);
 $numbers=explode('|',$A[0]);
 $odierno = explode(' ',$numbers[0]);
 foreach ($A as $B) {
  $contents .= $B;
 }
 $VAR["Heading"] = ucfirst($type) . " Log";
 if (!empty($contents)) {
  $VAR["Content"] = nl2br($contents);
  //$VAR["Content"] .= nl2br($odierno[0]);
 } else {
  $VAR["Content"] = "Niente.<br />\n";
 }
 $VAR["Content"] .= F_resetButton($type);
 F_drawMain($VAR);
}
ora, non riesco a ragruppare la singola data.
Qualcuno sa indirizzarmi? principalmente su quale funzione predefinita
utilizzare, io pensavo di crearmi un array con le date e confrontarle con
array_key_exists() ma non so se sono sulla strada giusta?
Spunti? ... sputi :-) ?
grazie a tutti
maxxe

 ora, non riesco a ragruppare la singola data.
Carica tutto in un DB e via. Inutile appesantire il server con
l'elaborazione tramite array di dati che stanno a pennello in un DB.
-- 
I am what I am, I do what I can
Cerchi un programmatore PHP/MySQL? 
http://url.repository.biz/go/1Y
L'uomo, conscio di sbagliare, persevera.

 l'elaborazione tramite array di dati che stanno a pennello in un DB.
Grazie Setec, il tuo parere è sempre molto apprezzato e ti seguo sempre con
sommo interesse
Non posso al momento caricare tutto su un db in quanto si tratta di un file
di statistiche, attualmente l'host che ospita questo sito non permette di
utilizzare il db per immagazzinare dati statistici.
ciao
maxxe

 permette di utilizzare il db per immagazzinare dati statistici.
Cioe' il provider ti dice "puoi mettere di tutto nel DB tranne i dati
statistici"? Che provider e'?


 
scusa ma la "suddivisione" consiste nel mettere una riga vuota tra 2 
date differenti ?
che intendi per suddivisione ?
ciao
Alesi_27

 Alesi_27
ciao ciao
maxxe


non so che te ne fai,  ma penso ti basti una variabile di appoggio,
ogni volta che leggi la riga successiva controlli che i primi 10
caratteri (data) siano uguali ai primi dieci della riga precedente,
altrimenti stampi i primi 10 car (data) e poi la riga e continui così
fino alla fine.
non so se sono stato chiaro o se ho interpretato bene la domanda, ma
così facendo l'output sarà quello dato da te come esempio.

Ma non č meglio salvare file diversi per date diverse?
qualcosa come
/path/della/dir/delle/statistiche/2004/03/25/log.txt
cosě hai sempre file separati e quel problema č risolto.
con un po' di if per controllare l'esistenza delle directory puoi
costruire l'alberatura in maniera automatica.
-----------------------------------------
Dr.Tarr      
http://drtarr.blog.excite.it
-----------------------------------------
Messaggio inviato con Excite Newsgroup.
http://www.excite.it/newsgroup

/path/della/dir/delle/statistiche/2004/03/25/log.txt
questo dovresti chiederlo a chi serve.
Io non lo ritengo utile. Al massimo li separerei per mesi.