Hugo-1708: csv datei durchsuchen

Hi
Ich habe ein problem:
Ich bin Anfänger im Thema PHP.
So jetzt mein Problem:
Ich möchte eine Such-Funktion in meine Homepage einbauen. Ich stelle mir das so vor, dass ich eine Tabelle (csv) habe mit (na klar) ein paar zeilen. Nun habe ich auf meiner Hp ein Suchfeld ( imput type="text" ) un einen Submit button. Jetzt soll wenn ein Begriff eingegeben wird die erste Spalte der Tabelle durchsucht werden. Wenn der Begriff dan in z.B. Zeile 46 gefunden worden ist, dann soll der link ( welcher eine Spalte weiter rechts steht ) ausgeführt werden.
Geht das oder ist das unmöglich?

  1. Moin,

    So jetzt mein Problem:
    Ich möchte eine Such-Funktion in meine Homepage einbauen. Ich stelle mir das so vor, dass ich eine Tabelle (csv) habe mit (na klar) ein paar zeilen. Nun habe ich auf meiner Hp ein Suchfeld ( imput type="text" ) un einen Submit button. Jetzt soll wenn ein Begriff eingegeben wird die erste Spalte der Tabelle durchsucht werden. Wenn der Begriff dan in z.B. Zeile 46 gefunden worden ist, dann soll der link ( welcher eine Spalte weiter rechts steht ) ausgeführt werden.
    Geht das oder ist das unmöglich?

    Unmöglich ist nichts :D
    Kommt drauf an wie weit du schon bist. Schau dir mal die CSV-Funktionen von PHP an (fgetcsv und fputcsv). Dann musst du aber wahrscheinlich auch ans Filelocking denken.

    Gruß,
    Take

  2. Moin!

    Geht das oder ist das unmöglich?

    Natürlich geht das. Lese über file, file_get_contents, explode, list, array-Funktionen, hashes, foreach, str_pos, strtolower, trim, ggf. csv-Funktionen,  ggf. auch über reguläre Ausdrücke.

    Alles weitere hängt von Deinen Wünschen ab.

    MFFG (Mit freundlich- friedfertigem Grinsen)

    fastix

    1. Hi!

      Natürlich geht das. Lese über file, file_get_contents, explode, list, array-Funktionen, hashes, foreach, str_pos, strtolower, trim, ggf. csv-Funktionen,  ggf. auch über reguläre Ausdrücke.

      Es ist doch etwas aufwendiger, CSV mit allen seinen Eigenheiten richtig zu parsen. Dein Vorschlag scheitert bereits an file() beziehungsweise der Kombination file_get_contents() und explode() (anzunehmenderweise am Zeilenumbruch). Zeilenumbrüche können auch in Feldern auftreten, wenn diese ordentlich mit einem Quotierzeichen eingefasst sind. Das ignorieren beide Ansätze und schneiden somit auch Daten auseinander.

      Besser ist es, das bereits empfohlene fgetcsv() zu verwenden. (Allerdings sollte man auf die englische Handbuchseite von fgetcsv() verweisen, denn die deutsche Übersetzung scheint ein alter Stand zu sein.)

      Lo!

      1. Hello,

        Besser ist es, das bereits empfohlene fgetcsv() zu verwenden. (Allerdings sollte man auf die englische Handbuchseite von fgetcsv() verweisen, denn die deutsche Übersetzung scheint ein alter Stand zu sein.)

        fgetcsv() ist repariert. Es funktioniert nun so, wie in der (englischen) Handbuchseite erklärt wird. Eine leere Zeile (nur Zeilenumbruch) liefert ein Array mit einem einzigen Element, das den NULL enthält.

        Ich habe hier im Forum auch schon ein paarmal Funktionen vorgestellt, wie man aus einer CSV-Datei ein "Spaltenarray" macht (was dann ja wieder leicht spaltenweise sortierbar und durchsuchbar ist) und wie man aus einem solchen "Spaltenarray" eine CSV-Datei erzeugt.

        Ich hab jetzt nur keine Zeit, die Threads zu suchen. Aber, wenn sie gefunden werden, sollten sie in die Wikiseite über "Arrays mal anders rum..."

        Liebe Grüße aus dem schönen Oberharz

        Tom vom Berg

        --
         ☻_
        /▌
        / \ Nur selber lernen macht schlau
        http://bergpost.annerschbarrich.de