Statistik - Textfile

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

  • Statistik - Textfile

    Guten Morgen

    Ich habe schon Stunden im Handbuch und im Forum gesucht, finde aber leider keine Lösung für das Problem

    Es geht um eine kleine Statistik.

    Auf meiner Page werden Texte (liegen auf dem Server) per Mail versendet
    jetzt möchte ich gerne wissen, welche Texte, an welchem Tag, wie oft versendet wurden.
    Die ergebnisse möchte ich in einer Textdatei auf dem Server ablegen

    die Textdatei soll so aussehen

    (logfile.txt)
    PHP-Code:
    Dec-06-2003
    Honig
    .txt 8
    Banane
    .txt 10
    Birne
    .txt 24
    Apfel
    .txt 2
    Dec
    -07-2003
    Honig
    .txt 4
    Banane
    .txt 6
    Birne
    .txt 9
    Apfel
    .txt 19 
    Honig.txt wurde also am 6.Dezember 8mal versendet
    (die Textdatei hab ich natürlich selber erstellt)



    Das script bekommt den Textnamen übergeben (Honig.txt) und soll dann im Logfile erstmal nachsehen, ob heute ($Datum) schon etwas geschrieben wurde. Findet es das $Datum, soll es dann von da an bis an das ende der Liste nach Honig.txt suchen
    ist Honig.txt vorhanden, soll es die zahl dahinter um 1 erhöhen
    ist Honig.txt noch nicht vorhanden, soll es schreiben "Honig.txt 1"

    und hier, was ich bisher versucht habe
    PHP-Code:
    <?php

    $datum 
    date ("M-d-Y") ;
    $logfile="./logfile.txt";
    $Datei fopen("$logfile","a+");
    $logfile_inhalt file("$logfile"); 

    $anzahl=  Count($logfile_inhalt); 

    // sucht ob heute schon was geschrieben wurde (das heutige Datum))

    // diese funktion brauche ich zwar nicht ,, aber da ich sie später eh brauche.. 
    // habe ich sie hier eben auch verwendet, wird wohl nicht schaden , hätte auch array_search nehmen können
    if ($suche array_search_bit("$datum"$logfile_inhalt)) { 

    // $nummer= (current ($logfile_inhalt));
    // ich bekomme zwar den Inhalt, aber nicht die Nummer der position
        
    // ab hier stimmst nix mehr so richtig
    // da ich keine Möglichkeit fand, im ersten array die Einträge ab der nummer wo das Datum gefunden wurde bis zum ende
    // extra auszulesen, versuche ich eben ab der nummer alles in ein neues arrray zu schieben
    // zum durchzählen ( $logfile_inhalt[NUMMER] brauche ich aber die Nummer.. die bekomme ich irgendwie auch nicht daher

        
    $suchergebnisse = array ($logfile_inhalt[$suche]);
        for(
    $i=($suche+1);$i<$anzahl ;$i++)
        {
        
        
    array_push ($suchergebnisse,$logfile_inhalt[$suche]);
        }
        
            
    $anzahl_suchergebnisse =  Count($suchergebnisse);
            for(
    $j=0;$j<$anzahl_suchergebnisse;$j++)
            {
            
    $absatz="<br>";
            
    // Echo $suchergebnisse[j].$absatz;
            
    }
    }
    //-----------------
    function array_search_bit($search$array_in)
    {
    foreach (
    $array_in as $key => $value)
    {
    if (
    strpos($value$search) !== FALSE)
    return 
    $key;
    }

    return 
    FALSE;
    }


    ?>
    ich hoffe das reicht, um sich ein Bild machen zu können

    wäre nett, wenn mir jemand helfen könnte

    Nachtrag: ich sehe gerade .. das "<br>" ($absatz="<br>" gehört da eigentlich nicht rein .. kann es jetzt aber nicht ändern/prüfen .. da ich in der Arbeit bin
    Zuletzt geändert von Burni; 08.12.2003, 09:28.
    PHP - ich weiß zwar nicht wie es funzt .. aber ich finds geil (bin noch Anfänger)

  • #2
    aktuelle Datei mit file() in ein Array einlesen, dann hast du ein Array von lauter Strings; die richtige Zeile suchst du dir mit einem preg oder strncmp raus; explode, Wert erhöhen und den Kram mit dem neuen Wert wieder speichern.
    mein Sport: mein Frühstück: meine Arbeit:

    Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

    Kommentar


    • #3
      Hallo

      danke für die Antwort .. aber hab ich das nicht schon im ersten Teil so gelöst ?

      Ich frag mal anders

      wenn ich mit array_search etwas gefunden habe, wie bekomme ich dann die Nummer (interner Zeiger ) heraus ?

      ich möchte ab "Nummer" bis ans Ende alles in ein zweites Array kopieren und darin eine weitere suche Starten
      PHP-Code:
      for($j=$Nummer;$j<($count_erstes_array);$j++)
      {
          
          
      array_push ($zweites_array,$erstes_array[$j]);
          } 
      PHP - ich weiß zwar nicht wie es funzt .. aber ich finds geil (bin noch Anfänger)

      Kommentar


      • #4
        Original geschrieben von Burni
        wenn ich mit array_search etwas gefunden habe, wie bekomme ich dann die Nummer (interner Zeiger ) heraus ?
        http://www.php-resource.de/manual.ph...n.array-search
        array_search -- Durchsucht ein Array nach einem Wert liefert bei Erfolg den Schlüssel
        mein Sport: mein Frühstück: meine Arbeit:

        Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

        Kommentar

        Lädt...
        X