[PHP|HTML] Textdatei auslesen, Inhalt in HTML|PHP ausgeben.

M

Mr. Snoot

Gast
Hio,

ich bekomm für Suchanfragen auf meiner HP eine Logdatei wo steht nach welchen Begriffen wie oft gesucht wurde. Das ist im Moment eine einfache .txt-Datei (kann aber auch html, php o.ä. einstellen).

Die Einträge sehen so aus: suchbegriff|anzahl_suchanfragen, konkret also bspw.: halbleiter|4.

Gibt es ne Möglichkeit aus der Logdatei z.B. die zehn häufigsten Suchanfragen auszulesen und dann in einer Webseite auszugeben?

Die Darstellung der Einträge (xx|yy) kann man imo auch ändern falls es in der aktuellen Einstellung nicht möglich ist da was auszulesen.

Die Logdatei wird mit folgendem Code erstellt:

PHP:
#################################################
# Logdatei schreiben

foreach ($search_arr as $search_exp) {

$zeilen = file("pfad_zur_logdatei.txt");
$anz_zeilen = sizeof($zeilen);

$x=0;

# Datenfile auslesen
for ($i=0; $i<$anz_zeilen; $i++) {

        list ($search_word, $search_num) = split("\\|", chop($zeilen[$i]));

        // wenn Suchbegriff gefunden wird
        if ($search_exp==$search_word) {
                $search_num++;
                $i-2;
                $x++;
        }
            $new_log .= "$search_word|$search_num\n";
}

// wenn der Suchbegriff nicht schon geloggt wurde
if ($x==0) {
        $search_num = "1";
    $new_log .= "$search_exp|$search_num\n";
}

$data = fopen("pfad_zur_logdatei.txt","w+");
flock($data,1);
fwrite($data, $new_log);
flock($data,3);
fclose($data);
unset($new_log);
}
#################################################
 
Falls verfügbar würde ich das ganze in eine MySQL-Datenbank eintragen. Du könntest dann nach Spalten sortieren und so z.B. auch nach den meisten Abfragen sortieren. Womit du dann mit einem einzelnen einfach SQL-Befehl das Ergebnis hättest.

Mit einer Textdatei in der Form müsstest du
- die Datei einlesen => fopen ()
- Zeile für Zeile auslesen
- jede Zeile trennen durch ein | => explode ()
- das entstandene Array sortieren nach bestimmten Kriterien
- mittels For-Schleife ausgeben

Ich glaube allein daran siehst du schon, dass es mit MySQL schneller und komfortabler gehen würde.

Aber jetzt hast du 2 Lösungsansätze, die du nur noch umsetzen musst.
 
GeYe schrieb:
Falls verfügbar würde ich das ganze in eine MySQL-Datenbank eintragen. [..] Ich glaube allein daran siehst du schon, dass es mit MySQL schneller und komfortabler gehen würde.

Aber jetzt hast du 2 Lösungsansätze, die du nur noch umsetzen musst.
Also ne Datenbank hät ich - aber nicht wirklich Ahnung wie das dann komplett aussehen müsste (nicht wirklich = gar keine :D)
 
Zurück
Oben