Tutorial Daten in einer Textdatei suchen

Das PHP-Skript zur Ausgabe der Inhalte von der Textdatei beruht auf dem Skript “Geburtstage anzeigen” von Webbausteine.de.

Zunächst habe ich mir ein ganz normales Formularfeld zur Suche, mittels der Formular-Werkzeuge von NOF, aufgezogen.

Bitte nennt das Eingabefeld “suchbegriff”, da in dem Skript zur Suche auf diese Post-Variable zurückgegriffen wird.

Bei den Eigenschaften der Schaltfläche wählt Ihr bei “Aktion:” suchen.php (den Namen der Seite auf der Ihr das Skript einbaut), also hier die gleiche Seite. Bei “Methode:” wählt Ihr Verschicken.

CSV-Datei Beispiel

Hier wird eine CSV-Datei verwendet, die Ihr beliebig anpassen und erweitern könnt. Hier könntet Ihr aber ebensogut auch eine TXT-Datei verwenden.

Achtet darauf, dass alle Textdateien in der Kodierung “UTF-8 ohne BOM” gespeichert werden, wenn Ihr den Zeichensatz “UTF-8” für Eure Seiten verwendet, damit die Umlaute und Sonderzeichen korrekt dargestellt werden. Am besten Ihr ladet Euch hierfür einen Editor wie Notepad++ herunter.

Hier meine CSV-Datei “mitglieder.csv”. Wie Ihr erkennen könnt, verwende ich einen senkrechten Strich | als Separator für die Funktion “explode”.

01.10.2014|Schulze|Berlin|Schöne Str. 16|
01.10.2014|Müller|Düsseldorf|Neuestr. 1|
03.10.2014|Schulze|Köln|Am Dom 21|
04.10.2014|Schulze|New York|201 Fifth Avenue|
05.10.2014|Meyer|München|Waldstraße 9|

Stellt Eure Seite zur Anzeige der Skripte auf die Dateierweiterung .php um, damit das Skript am Server ausgeführt werden kann.

> Bearbeiten > Benutzerdefinierte Namen > Dateierweiterung > .php wählen

Zieht Euch ein Textfeld auf und fügt das Skript in den HTML-Code Editor des Textfeldes ein.

> Textfeld doppelklicken (Cursor blinkt) > Fenster “Text-Eigenschaften” > mittlere Button oben “Textfeld” > Button ”HTML” > Code einfügen

Hier das PHP-Skript zum Suchen in dieser CSV-Datei.

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {

 $trennzeichen = "|"; // Zeichen mit der die Daten in der Zeile getrennt sind.
 $datensaetze = file("../Daten/mitglieder.csv"); // CSV-Datei
 $ergebnisse = array();

 foreach ($datensaetze as $datensatz) {
  if (stristr($datensatz, $_POST["suchbegriff"])) {
   $ergebnisse[] = $datensatz;
  }
 }

 if (count($ergebnisse)>0) {
  echo '<p>Gefunden: ' . count($ergebnisse) . '</p>';
  foreach ($ergebnisse as $ergebnis) {
   // Hier die Anzahl der Spalten eventuell anpassen!
   list($datum, $name, $ort, $strasse) = explode($trennzeichen, $ergebnis);
   echo '<p><span style="color:blue"><b>Datum:</b> ' . $datum . ', <b>Name:</b> ' . $name . ', <b>Ort:</b> ' . $ort . ', <b>Straße:</b> ' . $strasse . '</span></p>';
  }
 }
 else {
  echo '<p><span style="color:red"><b>Keine Einträge gefunden!</b></span></p>';
 }
}
?>

  • Bemerkung:
     
    • Wie Ihr bei meinem Skript erkennen könnt, habe ich die CSV Datei in ein Verzeichnis “Daten” auf den Server kopiert, das in meinem Stammverzeichnis liegt und das ich zusätzlich mit einer .htaccess Datei geschützt habe. Da ich dieses Skript hier auf einer Unterseite eingebaut habe, die ein Verzeichnis tiefer liegt, ist die relative Pfadangabe mit zwei Punkten ../ eingetragen (gehe ein Verzeichnis höher, in dem das Verzeichnis Daten liegt). Achtet also immer auf die korrekte relative Pfadangabe.

Viel Erfolg!

Tutorials von Thomas Frei-Herrmann

diese Seite weiter empfehlen


Counter Statistik