Such-Strings in Textdateien auswerten !?

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

  • Such-Strings in Textdateien auswerten !?

    Morgen !

    ScriptFrage:
    Ich benutze eine Suchfunktion auf meiner Seite, welche mittels MySQL/Php
    Ergebnisse liefert. (Funktioniert soweit alles wunderbar)
    Nun möchte ich der Suchfunktion ohne MySQL-DB eine weitere Funktion
    bieten und zwar die zuletzt eingegebenen Such-Wörter auf meiner Seite
    für die User auszugeben. Ich möchte dies jedoch nicht mit MySQL-DB
    bewerkstelligen, sondern mit einer Textdatei.
    Probleme die Suchwörter mittels PHP in eine Textdatei zu schreiben hätte
    ich nicht, jedoch bei der Auswertung zur Anzeige der meistgesuchten
    Wörter. Ich stelle mir das etwa so vor:

    Nach einer Eingabe eines Suchwortes über ein Suchformular innerhalb
    meiner Seite werden die "Such-Strings" sofort in eine Textdatei geschrieben
    (eventuell zeilenweise). Nun müßte aber ein Script die Textdatei vorher
    prüfen ob diese Suchwörter schon in der Textdatei vorhanden sind um
    im nachhinein festzustellen wie oft nach ein Wort schon gesucht wurde.
    Wenn es vorhanden ist sollte ein Zahlenwert ausgelesen und um 1
    erhöht werden.
    Ist es nicht vorhanden, sollte es in der Textdatei neu angelegt werden.

    Die Textdatei müßte somit ungefähr so aussehen:

    dvd [12];
    geld [8];
    spiele [4];
    u.s.w. ....

    Ich weiß nicht ob ich mit dem denken dort einigermaßen richtig liege,
    oder es mir mal wieder zu kompliziert mache. Da ich leider eher mit
    Datenbanken arbeite (dort auch wüßte wie ich das bewerkstelligen würde)
    und sehr selten mit Php und Textdateien bitte ich um Mithilfe.

    Vielen Dank

  • #2
    genau die richtige idee hast du da.

    machs so:

    1) datei baust du auf wie folgt:
    wort 1;12
    wort2;110
    wort drei;1

    2) wenn ein wort gesucht wird, gehst du die datei zeilenweise durch:
    fopen, fread, file, etc. pp

    3a) mittels strstr oder preg_match zerpflückst du die zeile und ziehst dir, falls das suchwort drin steht die anzahl raus. such dir die funktion aus, die dir besser gefällt.

    3b) wenn das wort nicht dabei ist, packst du einfach ne neue zeile ran:
    wort IV;1 fwrite


    die auswertung/sortierung der meisten worte erfolgt wie in punkt 3a, allerdings packst du da alles(!) in ein array und sortierst dieses dann nach der anzahl.

    Kommentar


    • #3
      Ich stimme zu, aber würde fgetcsv(), in_array() und fputcsv() dafür nehmen.
      Wenn du nur die Top10 oder ähnlich wenig speichern möchtest, könnte man auch mal die Performance mit der von serialize()/unserialize() vergleichen.
      Viel Erfolg!

      Kommentar


      • #4
        Ich stimme zu, aber würde fgetcsv(), in_array() und fputcsv() dafür nehmen.
        Jo, wenn er ne CSV-Datei aufbaut, sollte er auch entsprechende fkt benutzen.

        Wenn du nur die Top10 oder ähnlich wenig speichern möchtest, könnte man auch mal die Performance mit der von serialize()/unserialize() vergleichen.
        Halte ich jedoch für nicht so geeignet.

        was machst du, wenn platz 11 (den DU ja gar nicht speichern willst) auf einmal dauernd gesucht wird?

        Kommentar


        • #5
          Original geschrieben von TobiaZ
          was machst du, wenn platz 11 (den DU ja gar nicht speichern willst) auf einmal dauernd gesucht wird?
          Hier gehts nicht um das Cachen von Suchanfragen sondern ...
          Original geschrieben von GundeCK
          Nun möchte ich der Suchfunktion ohne MySQL-DB eine weitere Funktion bieten und zwar die zuletzt eingegebenen Such-Wörter auf meiner Seite für die User auszugeben.
          'zuletzt' heißt für mich 'die letzten x', und je nach dem Wert von x könnte (un)serializing schneller sein.

          Kommentar


          • #6
            mag sein, dennoch solltest du den folgenden Teil nicht vernachlässigen:

            Nach einer Eingabe eines Suchwortes über ein Suchformular innerhalb
            meiner Seite werden die "Such-Strings" sofort in eine Textdatei geschrieben
            (eventuell zeilenweise). Nun müßte aber ein Script die Textdatei vorher
            prüfen ob diese Suchwörter schon in der Textdatei vorhanden sind um
            im nachhinein festzustellen wie oft nach ein Wort schon gesucht wurde.
            Wenn es vorhanden ist sollte ein Zahlenwert ausgelesen und um 1
            erhöht werden.
            Ist es nicht vorhanden, sollte es in der Textdatei neu angelegt werden.

            Die Textdatei müßte somit ungefähr so aussehen:

            dvd [12];
            geld [8];
            spiele [4];
            u.s.w. ....
            Ob das nachher für die Ausgabe relevant ist oder nur zur internen auswertung, das wäre dann zweitrangig.

            Kommentar

            Lädt...
            X