Bestimmte Zeile finden

ExAByte

Mitglied
Hallo PHPler,
ich habe ein kleines Problem. Ich lese eine Datei aus, die sehr groß ist, mich interessieren aber eigentlich nur 4 Zeilen die immer mit bestimmten Tags anfangen. Nur diese Zeilen möchte ich haben und in ein Array schreiben. Letzteres ist nicht das Problem, wie finde ich exakt diese Zeilen?

Aufbau
(..)
Name: Ein Name
Ort: Irgendwo
PLZ: 12345
Datum:31.08.2001
Beschreibung: Eine Beschreibung
(..)


Mit interessieren nun der Name, Ort und die PLZ

Danke
ExAByte
 
Hi,

ich gehe mal davon aus das deine Variablen durch ein Formular in die Datei eingetragen werden.

PHP:
$datei ="anmeldung.txt";
$eintrag = @fopen($datei, "a")
or die ("Zur Zeit ist noch kein Eintrag vorhanden");
fputs($eintrag, $_POST['name'] . "\n");
fputs($eintrag, $_POST['ort'] . "\n");
fputs($eintrag, $_POST['plz'] . "\n");
fputs($eintrag, $_POST['datum'] . "\n");
fputs($eintrag, $_POST['comments'] . "\n");
fclose($eintrag);

Nun kannst du ja ganz bequem das ausgeben lassen was du möchtest:

PHP:
$temp = "anmeldung.txt";
$fp = @fopen($temp, "r")
or die ("Datei konnte nicht gelsen werden");
{
      echo "<table  cellspacing='2' cellpadding='2' border=1 bordercolorlight='#FFCC00' bordercolordark='#FFCC00'>";
      echo "<tr> <td>Name</td> <td>Ort</td> <td>PLZ</td>";
      echo "<td>Datum</td> <td>Beschreibung</td></tr>";
$nr = 0;
while (!feof($fp))
{
$name = fgets($fp, 2000);
$ort = fgets($fp, 2000);
$plz = fgets($fp, 2000);
$datum = fgets($fp, 2000);
$comments = fgets($fp, 2000);
$nr = $nr + 1;
echo "<tr> <td>$nr</td> <td>$name</td> <td>$ort</td> <td>$plz</td> ";
         echo "<td>$datum</td> <td>$comments</td> </tr>";
	  }
      echo "</table>";
      fclose($fp);   
   }
 
Hallo,

danke für die Antwort, leider haben wir uns falsch verstanden. Ich möchte nicht hinein schreiben, sondern die Datei existiert bereits als HTML.

Die "Tags" Name: Ort: etc. können dabei aber irgendwo in der Datei stehen nicht am Anfang ich möchte also die Zeilen haben, die beispielsweise mit Name: anfangen aber nicht die Zeile Zitat.
Dann möchte ich wieder den Ort haben usw. Das diese "Tags" in der Datei stehen ist sicher, aber ich weiß nicht wo, ich brauche also jeweils die Zeile die mit Name: etc. beginnt.

Danke
ExAByte
 
ok erst zeile einlesen:

$zeile = fgets($fp, 2000);

dann ermitteln ob Ort vorhanden ist:

$pos = strpos($zeile,"Ort");

if (pos > 0) {
echo "zeile hat Ort";
}

usw mit den andern texten
 
Zurück