[PHP] Text per PHP-Script durchsuchen

Registriert
Aug. 2003
Beiträge
193
Hallo,

ich habe ein 'kleines' Problemchen. Ich brauche für meine Clanpage ein php, welches txt-Dateien durchsucht. Das ganze soll folgendermaßen aussehen:

Inhalt der txt-Datei:

Code:
&datum1=Ernst,Martin,Robert_01.11.03&
&datum2=Florian,Martin,Philipp,Robert_26.10.03&
&datum3=Ernst,Florian,Martin,Philipp_20.10.03&
...

Der Inhalt der Textdatei sollte einzeln aufgesplittet und nach dem Namen durchsucht werden. Also wenn ich an das PHP den Namen "Robert" übergebe, soll das Script jedes Datum durchsuchen, ob der Name darin vorkommt und wenn dies der Fall ist mir das Datum ausgeben.

Also wenn ich im oberen Beispiel nach "Robert" suche soll er mir diese beiden Termine ausgeben: "01.11.03" und "26.10.03".

Jetzt wollte ich mal in die Runde fragen, ob ihr nicht ein Script kennt, welches die Textdatei durchsucht und die Ergebnisse dann per echo die Termine ausgibt? Ich habe schon bei diversen php-Seiten geschaut aber nichts gefunden und alleine bin ich noch nicht so firm in php, dass ich dies allein hinbekäme. Ein Standartscript zum selber anpassen oder ein paar Hinweise/Codeschnipsel würde mir schon reichen.

Für Tipps oder scripts wäre ich sehr dankbar :).

P.S. Das ganze mit einer mySQL Datenbank zu realisieren scheidet leider aus, da ich keine in meinem Webspace-Paket habe und ich sql noch weniger beherrsche als php.
 
Zuletzt bearbeitet:
kleiner Auszug aus dem PHP-Manual:

fgetcsv
(PHP 3>= 3.0.8, PHP 4 )

fgetcsv -- Liest eine Zeile von der Position des Dateizeigers und prüft diese auf Komma-Separierte-Werte (CSV)
Beschreibung
array fgetcsv ( resource handle, int length [, string delimiter [, string enclosure]])


Die Funktion fgetcsv() ist ähnlich der Funktion fgets(), nur dass fgetcsv() die eingelesene Zeile auf Felder im CSV Format (kommaseparierte Felder) hin überprüft, und ein Array mit den gelesenen Feldern zurückgibt. Ist der optionale dritte Parameter delimiter (Trennzeichen) nicht angegeben, wird standardmäßig das Komma benutzt. Der optionale Parameter enclosure ist auf ein Zeichen limitiert und darf nicht null sein. Enthält enclosure mehr als ein Zeichen, wird nur das erste verwendet.

Anmerkung: Der Parameter enclosure wurde in PHP 4.3.0 eingeführt.

Der Parameter handle muss ein gültiger Dateizeiger sein, d.h. die Datei, auf die gezeigt wird, muss zuvor mit fopen(), popen() oder fsockopen() geöffnet worden sein.

Length muss größer sein als die längste in der CSV-Datei vorhandene Zeile (um das Erkennen von EndOfLine (Ende der Zeile) Zeichen zu ermöglichen).

fgetcsv() gibt bei Lesefehlern und am Dateiende FALSE zurück.

Anmerkung: Eine leere Zeile der CSV-Datei wird als Array mit einem Feld das den Wert NULL hält zurückgegeben. Sie wird nicht als Fehler behandelt.

Beispiel 1. Lesen und Ausgeben des gesamten Inhalts einer CSV-Datei
Code:
<?php
$row = 1;                                      // Anzahl der Arrays
$handle = fopen ("test.csv","r");              // Datei zum Lesen öffnen
while ($data = fgetcsv ($handle, 1000, ",")) { // Daten werden aus der Datei
                                               // in ein Array $data gelesen
    $num = count ($data);                      // Felder im Array $data
                                               // werden gezählt
    print "<p> $num fields in line $row: <br>\n";
    $row++;                                    // Anzahl der Arrays wird 
                                               // inkrementiert
    for ($c=0; $c < $num; $c++) {              // FOR-Schleife, um Felder 
        print $data[$c] . "<br>\n";            // des Arrays auszugeben
    }
}
fclose ($handle);
?>
 
Oh super, genau so etwas habe ich gesucht. Nervig wenn man in einer Programmiersprache noch N0ob ist und immer fragen muss :rolleyes:.

Nochmals danke! :)
 
Zurück
Oben