Ankündigung

Einklappen
Keine Ankündigung bisher.

Logfile auswerten, nach Zeit sortieren und so

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Logfile auswerten, nach Zeit sortieren und so

    Hallo,

    Moin, moin,

    ich möcht mit Hilfe von PHP ein Textfile durchsuchen, um daraus bestimmte Daten anzuzeigen.
    Es handelt sich hierbei um ein Logfile, dessen Daten dieses Format haben:

    23.6.2004;14:06:30;175;190;1812;150;180;150;7815;9 65;4;1023;409;376
    23.6.2004;14:07:00;175;190;1818;150;180;150;7814;9 67;6;782;74;983

    nun möchte ich gerne z.B. die Daten der Letzten vollen Stunde ausgeben.
    Ist es also 23.6.2004 14:07:20h sollen die Daten von 14:00:00h ausgegeben werden.
    Der Originalthread ist geschlossen worden. Da ich selbst mal genau sowas brauchte, stelle ich mal den Anfang meiner Version hier noch rein (für die, die's interessiert


    Code:
    <?php
    #############################
    $trennzeichen_csv  = ';';
    $trennzeichen_date = '.';
    $trennzeichen_time = ':';
    $spalte_datum      = 0;
    $spalte_zeit       = 1;
    #############################
    
    $fp = fopen('textdatei', 'r') or die();
    
    while (!feof($fp))
        $array[] = fgetcsv($fp, 4096, $trennzeichen_csv);
    
    fclose($fp);
    
    $lasthour = mktime(date('H'), 0, 0);
    
    foreach ($array AS $key => $arr)
        {
        $date_array = explode($trennzeichen_date, $arr[$spalte_datum]);
        $time_array = explode($trennzeichen_time, $arr[$spalte_zeit]);
        $timestamp  = mktime($time_array[0],
                             $time_array[1],
                             $time_array[2],
                             $date_array[1],
                             $date_array[0],
                             $date_array[2]);
        if ($timestamp < $lasthour) // bei mir noch: AND $timestamp >= $lasthour + 3600
            unset($array[$key]);
        }
    
    print_r($array);
    
    ?>

  • #2
    Lies die Datei doch einfach Zeilenweise (fgets) und vergleiche mit folgendem String:

    if ( substr($zeile,0,12) == "23.6.2004;13") echo $zeile;
    // Wunschdatum nach Bedarf zusammenbasteln

    ...und weil log-files i.d.R chronologisch beschrieben werden kannst Du den Lesevorgang beenden, sobald IST-Datum > Soll-Datum

    Kommentar

    Lädt...
    X