PHP Zeilen aus Datei verwenden

Hallo Experten,

ich habe eine Text Datei, in der Daten stehen. Pro Zeile ein Wert.
Diese Daten möchte ich jetzt innerhalb meiner PHP Seite an unterschiedlichen Stellen in DIV Containern verwenden.

Beispiel:

Die txt- Datei (daten.txt) enthält:

Herr
Hans
Meier

Nach einiger Recherche im Web kam ich auf die Idee, meine PHP Seite so zu schreiben:

\<head\>




&nbsp;&nbsp; &nbsp;\<link rel="stylesheet" href="style.css" type="text/css"\>




\</head\>




\<body\>




&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;




\<?php




$handle = @fopen("daten.txt", "r");




if ($handle) 




{




&nbsp;&nbsp;&nbsp; while (($buffer = fgets($handle, 10)) !== false) 




&nbsp;&nbsp; &nbsp;{




&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo $buffer;




&nbsp;&nbsp; &nbsp;}




&nbsp;&nbsp;&nbsp; if (!feof($handle)) {




&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo "Fehler: unerwarteter fgets() Fehlschlag\n";




}




&nbsp;&nbsp;&nbsp; fclose($handle);




}




?\>

      

\<div id="absatz"\>




Anrede \<br\>




Name \<br\>




Vorname \<br\>




&nbsp; &nbsp;




\</div\>&nbsp;&nbsp; &nbsp;









&nbsp;&nbsp; &nbsp;




\</body\>

Ich habe momentan einfach die Worte „Anrede“, „Name“ und „Vorname“ in die Div Box geschrieben.
Nur der Vollständigkeit halber hier noch meine CSS Datei (style.css), die z.zt. nur dafür da ist, das ganze optisch etwas zu gestalten, damit ich sehe, wo was passiert :wink:

#absatz




{




&nbsp; background-color: 00FF00;




&nbsp; position: absolute;




&nbsp; width: 200px;




&nbsp; height: 100px;




&nbsp; top: 110px;




&nbsp; left: 219px;




&nbsp; font-family: Arial;




&nbsp; font-size: 20;




}

Mir ist 1. nicht klar, wie ich den Inhalt der txt Datei in den CSS Container bekommen und 2. wie ich nur einzelne Elemente (Zeilen) der TXT verwenden kann.
Weiss Jemand Rat ??

Vielen Dank für die Hilfe…

Gruss Winnie

Ahoi Winnie,

Mir ist 1. nicht klar, wie ich den Inhalt der txt Datei in den
CSS Container bekommen und 2. wie ich nur einzelne Elemente
(Zeilen) der TXT verwenden kann.
Weiss Jemand Rat ??

Eventuell hilft das hier:

<?php //Initialisiere eine Arrayvariable für die Daten
$daten = array(); //Öffne die Datei $handle = @fopen("daten.txt", "r"); //Wurde die Datei korrekt geöffnet? if($handle){ //Ohne Abbruchbedingung wäre das hier eine Endlosschleife while(true){ //Lese eine Zeile mit maximal 255 Zeichen aus der Datei in die Variable $anrede $anrede = fgets($handle, 255); //Dasselbe nochmal, aber für $name $name = fgets($handle, 255); //Und für $vorname $vorname = fgets($handle, 255); //Wurden alle drei Werte korrekt ausgelesen? if($anrede !== false && $name !== false && $vorname !== false) //Initialisiere ein Array mit "benannten Indexen" und füge es zu $daten hinzu array\_push($daten,array(anrede =\> $anrede,name =\> $name,vorname =\> $vorname)); //oder, wenn die Werte nicht korrekt ausgelesen wurden bzw. alle Daten ausgelesen wurden else //die "Endlosschleife" abbrechen. break; } //Wurde tatsächlich das Dateiende ereicht? if(!feof($handle)) //Wenn nicht, Fehlermeldung ausgeben echo "Fehler: unerwarteter fgets() Fehlschlag\n"; //Schliessen der Datei fclose($handle); } //Eine Zählerschleife, deren Zähler jeden Index von $daten durchgeht for($index=0;$index'; //$daten[$index] enthält einen kompletten Datensatz, mit den "benannten Indexen" //anrede, name und vorname //Hier wird (basierend auf dem Konzept aus der Frage) die Anrede ausgegeben echo 'Anrede: '.$daten[$index]['anrede'].' '; //hier der Name echo 'Name: '.$daten[$index]['name'].' '; //und der Nachname echo 'Vorname: '.$daten[$index]['vorname'].' '; //Schliessen des div-Tags nicht vergessen... echo ''; } ?\> P.S.: Dieses Beispiel geht davon aus, dass in der "daten.txt" mehrere Datensätze erfasst sind, sollte dies nicht zutreffen, dürfte sich das ganze aber rechtz simpel anpassen lassen.

Hallo Isendrak,

vielen Dank für das Script… Das hat super funktioniert. Vorallem ist es sehr schön auskommentiert, sodass man sich schnell im Code zurechtfindet.

Ich hab’s noch etwas erweitert (mehr Datensätze hinzugefügt) jetzt ist es genau nach meinen Wünschen… :smile:

Gruss Winnie

Vorallem ist es sehr schön auskommentiert, sodass man sich
schnell im Code zurechtfindet.

So sollte Code aber IMMER kommentiert sein! Wenn dich das überrascht hat, dann solltest du deinen eigenen Kommentierstil kritisch hinterfragen.

Wenn du dann noch sprechende Bezeichner für Variablen und Funktionen verwendest, wird alles gut.

Also anstelle von

int zahl = 0;

eben

int gesamtAnzahlZeilen = 0;

oder statt

function holzahl()
{
}

machst du

function getOverallLineCount()
{
}

Dann wird der Code lesbar und du brauchst wieder weniger Kommentare.

1 Like