Auslesen von Zeilen

M

mstar

Hallo,
wie muss ich mein Code ändern so das es Zeilen ausliest. So wie er jetzt geschrieben ist liest der Script immer nur die letzte Zeile aus.

PHP:
$datei = "daten.txt";												// Name der Datei
$array = file($datei) or die("Kann Datei 1 nicht Öffnen!");		    // Datei in ein Array einlesen
$file1 = file_get_contents("gnu.htm");								// Lokale Homepage zum Vergleich


$file1Read = (htmlspecialchars($file1[3348]. $file1[3349]. $file1[3350]. $file1[3351])); 
// die Versionsnummer Lesen und in String Umwandeln

foreach ($array as $element) {
	list ($progname, $mvers, $datum, $homepage) = explode(";", $element);
}

Vielen Dank im Vorraus.
 
Kannst du einmal ein Beispiel von einer daten.txt zeigen?
Das Auslesen der Datei sollte so eigendlich richtig sein, also ich sehe keinen Fehler.
 
Die sieht so aus:
Code:
PHP;3.0;05.11.2008;php.de;22.10.2008
PHP;5.0;05.11.2008;php.de;22.10.2008
 
Wenn ich folgendes ausführe, werden wie gewünscht 2 Zeile ausgegeben:
PHP:
<pre>
<?php
$datei = "daten.txt";                                                // Name der Datei
$array = file($datei) or die("Kann Datei 1 nicht Öffnen!");            // Datei in ein Array einlesen

foreach ($array as $element) {
    list ($progname, $mvers, $datum, $homepage) = explode(";", $element);
    /**
    * Echo zum testen der ausgabe:
    */
    echo $progname .' | ';
    echo $mvers .' | ';
    echo $datum .' | ';
    echo $homepage .'<br />';
}  
?>
</pre>
Sieht so aus im Browser:
http _localhost_t_.png

Du solltest die Variablen $progname, $mvers, $datum, $homepage innerhalb der foreach-Schleife ausgeben lassen. Deswegen wird dir nur ein Eintrag angezeigt.
 
Zuletzt bearbeitet:
Bei mir leider nicht :confused:.
Ich würde die schleife weglasen weis aber nicht wie das geht, können Sie mir das kurz Posten wie das ohne der foreach schleife aus sehen würde? Die Schleife habe ich bei mir immer so gemacht:
PHP:
foreach ($array as $element) {
    list ($progname, $mvers, $datum, $homepage) = explode(";", $element);
} da ich selber bestimmen wollte wie viele Daten angezeigt werden sollen.
    /**
echo .......
 
Es geht.
PHP:
list ($progname, $mvers, $datum, $homepage) = explode(";", $array[0]);
Aber danke nochmal für Ihre Bemühung.
 
So, ist nur nen Teil des Scriptes:

PHP:
$datei = "daten.txt";                                                // Name der Datei
$array = file($datei) or die("Kann Datei 1 nicht Öffnen!");            // Datei in ein Array einlesen

$file1Read = (htmlspecialchars($file1[3348]. $file1[3349]. $file1[3350]. $file1[3351])); 
// die Versionsnummer Lesen und in String Umwandeln

//foreach ($array as $element) {
//	list ($progname, $mvers, $datum, $homepage) = explode(";", $element);
//}

	list ($progname, $mvers, $datum, $homepage) = explode(";", $array[0]);
	
	
	$mversString = intval($mvers);
	
if ($mversString < $file1Read) {
	echo "<tr>";
	echo "<td height=\"19px\">$progname</td>";
	echo "<td height=\"19px\">$mvers</td>";
	echo "<td height=\"19px\" style=\"font-weight:bold; color:red;\">$file1Read<img src=\"action_delete.png\"></td>";
	echo "<td height=\"19px\"><a href=\"http://www.$homepage\" target=\"_blank\">$homepage</a></td>"; 
	echo "<td height=\"19px\">$datum</td>"; 
	echo "</tr>";
 
Zurück