Letzte Zeile Auslesen von einer TXT Datei mit PHP

M

mstar

Hallo,
wie lese ich zeile für zeile mit php aus?
Ich habe mal nen Script geschrieben aber das macht er nicht so richtig.

Mein Code:

PHP:
<h1 style="text-align:center; margin-top: 30px;">Liste</h1>

<table width="850px" cellspacing="5px">
  <tr>
    <th>Programm Name</th>
    <th>Meine Version</th>
    <th>Aktuelle Version</th>
    <th>Letzte &Auml;nderung</th>
    <th>Link zum Download</th>
  </tr>
  <?php


$datei = "daten.txt";   // Name der Datei
$array = file($datei);  // Datei in ein Array einlesen
$file1 = file_get_contents("gnu.htm"); // Lokale Homepage zum Vergleich


 // Die Variablen ($progname, $mvers, $datum, $homepage) aus der Variablen ($element) holen
foreach ($array as $element) {
list($progname, $mvers, $datum, $homepage) = explode(";", $element);

}

 echo "<tr>";
 echo "<td>$progname</td>";
 echo "<td>$mvers</td>";
 echo "<td>" .htmlspecialchars($file1[3348]. $file1[3349]. $file1[3350]. $file1[3351]). "</td>";
 echo "<td>$datum</td>";
 echo "<td><a href=\"http://www.$homepage\" target=\"_blank\">$homepage</a></td>";

 echo "<tr>";
 echo "<td>$progname</td>";
 echo "<td>$mvers</td>";
 echo "<td>" .htmlspecialchars($file1[3348]. $file1[3349]. $file1[3350]. $file1[3351]). "</td>";
 echo "<td>$datum</td>";
 echo "<td><a href=\"http://www.$homepage\" target=\"_blank\">$homepage</a></td>";


?>

</table>
<h1 style="text-align:center;">Informationen</h1>
<table width="400px" cellspacing="5px">

<tr>
    <th>Ihre IP Adresse: </th>
    <th>Ihr Hostname: </th>
    </tr>
<?php
// IP und Host ausgeben
 $ip = $_SERVER['REMOTE_ADDR'];
 $host = gethostbyaddr($ip);
 echo "<tr>";
 echo "<td>$ip</td>";
 echo "<td>$host</td>";
 echo "<tr>";
 ?>
 </table>
 
 <form action="<?php echo $_SERVER["PHP_SELF"] ?>" method="post">

<table style="width: 450px">
	<tr>
		<td style="width: 156px">Programmname:</td>
		<td><input type="text" name="programmname" style="width: 200px"></td>
	</tr>
	<tr>
		<td style="width: 156px">Meine Version:</td>
		<td><input type="text" name="meine_version" style="width: 200px"></td>
	</tr>
 	<tr>
		<td style="width: 156px">Homepage http://www.:</td>
		<td><input type="text" name="homepage" style="width: 200px"></td>
	</tr>
	<tr>
		<td style="width: 156px"><input type="submit" value="Eintrag speichern">
</td>

	</tr>
 <?php
// Formulareingabe speichern
if ($_POST) {
 $progname = $_POST["programmname"]; // Variablen einlesen
 $mvers = $_POST["meine_version"];
 $homepage = $_POST["homepage"];
 $id = mt_rand(10000,99999); // Eine ID um die Zeile (später) zu löschen
 $datum = date("d.m.Y",time()); // Aktuelles Datum ermitteln
 $text = "$progname;$mvers;$datum;$homepage;$id;\n"; // Textstring zusammensetzen

 $dateiname = "daten.txt"; // Name der Datei
 $handler = fOpen($dateiname, "a+"); // Datei zum Text anhängen öffnen
 fWrite($handler, $text); // Dateiinhalt in die Datei schreiben
 fClose($handler); // Datei schließen
}
?>


</table>
</form>

Meine TXT Datei:

Code:
PHP;2.0;05.11.2008;php.de;
Mato;1.0;12.11.2008;google.de;39789;


Vielen Dank im Vorraus.
 
Zuletzt bearbeitet von einem Moderator:
und was soltle passieren ?!

p.s.
soo lesen ich Dateien ein
PHP:
$datei = fopen('test','r') or die ("Kann Datei nicht lesen.");
$test = "";
while (!feof($datei))
     {
      $zeile .= fgets($datei,1024);
      $test = rtrim($zeile)."\r\n";
    }

und was is nun dein Problem ... ist die Ausgabe nicht korrekt willst du jede Zeile einlesn oder doch nur die letzte ?

und hier noch ne tolle referenz:
http://www.homepage-total.de/php/schreiben_lesen.php
 
Zuletzt bearbeitet:
dann füge der Schleife noch ne Zählervariable hinzu.

und jedesmal wenn
PHP:
if ($zaehlervariable == $deinegewünschteZeilennummer) {

}

... diese Bedingung zutrifft kannste ja machen was du wilslt ... oder du prüfst ob eine Zeile mit irgendetwas beginnt
PHP:
$zeile .= fgets($datei,1024);
if (strpos($zeile,"MusterVomZeilenanfang") === 0) {

}

ich glaub das müsste klappen (kein Plan ob der Zeilenanfang 0 oder 1 ist. muss man mal ausprobieren)
 
Zurück