foreach problem

TFAnthrax

Grünschnabel
Hallo,
ich habe folgendes Problem:

Ich habe Daten in einer TXT Datei und möchte den Inhalt in eine Tabellenzeile schreiben pro text zeile. Man sagte mir es ginge mit foreach () aber ich komme mit dem Syntax nicht klar. Kann mir bitte einer Helfen? Der Tabellenkopf soll statisch sein und es soll immer nur eine zeile Tabelle pro textzeile erstellt werde. Mein problem ist jetzt das es ja mehrere textzeilen sind und ich immer nur eine ausgegeben bekomme.

BItte um hilfe
Sascha
PHP:
$datei1="stats.txt";
if(file_exists($datei1)) 
{ 
$inhalt = file($datei1); 
$anzahl = count($inhalt); 
    for($i = 0; $i < $anzahl; $i++) 
    { 
        $newinhalt = array_reverse($inhalt); 
        $eintrag = explode("|-+-|",$newinhalt[$i]); 
        $_SESSION['tag'] = $eintrag[0]; 
        $_SESSION['monat'] = $eintrag[1];
        $_SESSION['jahr'] = $eintrag[2];
        $_SESSION['kommentar'] = $eintrag[3];
    } 
} 
else 
{ 
    echo"Es wurde keine Datei gefunden"; 
}
 
Probier mal Folgendes:
PHP:
<?php

	$datei1 = 'stats.txt';

	if( file_exists($datei1) && $contents = file_get_contents($datei1) ) {

		echo '<table>';
		echo '<tr><th>Tag</th><th>Monat</th><th>Jahr</th><th>Kommentar</th></tr>';
		$contents = preg_split('/\x0D\x0A|\x0A|\x0D/', $contents);
		array_reverse($contents);
		foreach( $contents as $content ) {
			if( trim($content) == '' ) {
				continue;
			}
			$item = explode('|-+-|', $content);
			echo sprintf(
				'<tr><td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>',
				$item[0],
				$item[1],
				$item[2],
				$item[3]
			);
		}
		echo '</table>';

	} else {

		echo 'Es wurde keine Datei gefunden';

	}

?>
 
Zuletzt bearbeitet:
hm es funktioniert nicht richtig.

ich bekomme die tabelle mit EINEM datensatz
es wird also nur eine zeile erzeugt
keine fehlermeldung oder so.

kannst du mir deinen Code vielleicht erklären?
steige da nicht durch
Noch eine idee?

edit:
muss ich jetzt innerhalb der foreach schleife noch mit for() arbeiten?
 
Zuletzt bearbeitet:
Zurück