Suche nach als

Datei lesen

Auf dieser Seite:

Wie kann ich eine Datei öffnen, in einer Datei lesen und aus einer datei einzelne Zeilen ausgeben? Diverse Möglichkeiten sind durch PHP Funktionen gegeben.

Einzelne Zeilen lesen

fopen(), fgets(), fclose()

Eine Datei muss zuerst geöffnet werden, um darin zu lesen oder um daraus etwas auszuwählen. Der Funktion fopen($datei, 'modus') wird als zweiter Parameter der Modus übergeben, der bestimmt, wie/wofür eine Datei geöffnet wird (weitere Infos in syntax.php):

modus   Funktion              Cursor am Datei ...   Neue Datei anlegen?   Datei überschreiben?
----------------------------------------------------------------------------------------------------
r       Lesen                 Anfang                Nein                  Nein
r+      Lesen und Schreiben   Anfang                Nein                  Ersetzt Anzahl Anschläge
w       Schreiben             Anfang                Ja                    Ja
w+      Lesen und Schreiben   Anfang                Ja                    Ja
a       Schreiben             Ende                  Ja                    Nein
a+      Lesen und Schreiben   Ende                  Ja                    Nein
<?php
// Eine Datei im Modus r zum lesen öffnen
$file="datei_content_raw2.txt";
$fp=fopen($file"r")   // noch kein Semikolon
or die("Konnte $file nicht öffnen"); // Fehlermeldung ausgeben
// lese 1024 Zeichen oder falls vorher fertig bis zum Ende der Zeile
$firstline=fgets($fp1024);
$first6=fgets($fp6);  // lese nur 6 Zeichen
$next=fgets($fp10);   // lese die nächsten 10 Zeichen
echo "$firstline<br />";
echo 
"$first6<br />";
// Nur wenn der FilePointer das Ende der Zeile erreicht, wartet er am Anfang der n&auml;chsten Zeile!!!<br />
echo "$next<br />";
fclose($fp);            // Datei sollte immer geschlossen werden
?>
|Diese Site ist super|http://www.biefer.com
|Das
ist nicht

Alles Zeilenweise einlesen

<?php
$file
="datei_content_raw2.txt";
$fp=fopen($file"r")
or die(
"Konnte $file nicht öffnen");
while(! 
feof($fp)) { // Schleife solange nicht das Ende des Files erreicht wurde
 
$line=fgets($fp1024); // lese Zeile für Zeile
 
echo "$line<br />"// und gebe diese aus
}
if (
$fpfclose($fp); // Datei sollte immer geschlossen werden falls sie überhaupt geöffnet wurde
?>
|Diese Site ist super|http://www.biefer.com
|Das ist nicht meine Site|http://www.biefer.ch

Zeichen für Zeichen lesen

fgetc()

Genau so wie oben, aber mit fgetc($fp); // FilePointer geht zum nächsten Zeichen nicht zur nächsten Zeile. (Ich habe einen counter für 10 Linien eingebaut.)

|
D
i
e
s
e

S
i
t

Ab einer bestimmten Position eine angegebene Menge lesen

fseek(), fread()

<?php
$file
="datei_content_raw2.txt";
$fp=fopen($file"r")
or die(
"Konnte $file nicht öffnen");
fseek($fp,10);            // gehe 10 Zeichen vor
$sweet16=fread($fp16);  // lese 16 Zeichen und bleibe stehen
echo "$sweet16<p/>";      // und gebe diese aus
fclose($fp);              // Datei sollte immer geschlossen werden
?>
e ist super|http

Ab der 2. Hälfte die 2. Hälfte

<?php
$file
="datei_content_raw2.txt";
$fp=fopen($file"r")
or die(
"Konnte $file nicht öffnen");
// Zum Beispiel ab der 2. Hälfte die 2. Hälfte:
$fsize=filesize($file);   // hole Grösse des Files in Bites (=Anschläge)
$fhalf=(int)($fsize/2);   // berechne die Hälfte des Files in Bites
echo "Die Dateimitte ist bei: $fhalf Zeichen<br />\n"// gib Anzahl Zeichen bis zur Filemitte aus
fseek($fp$fhalf);       // gehe zur Filemitte
$teil2=fread($fp,($fsize $fhalf)); // lese die zweite Filehälfte
echo "<pre>$teil2</pre>"// gebe die zweite Filehälfte aus
fclose($fp);              // Datei sollte immer geschlossen werden
?>
Die Dateimitte ist bei: 45 Zeichen
Das ist nicht meine Site|http://www.biefer.ch

Passt!


Valid XHTML 1.0 Check den Code.

Datei erstellen, ergänzen >> << Datei importieren
Ich bin hier: > PHP Lehrling >>> Datei lesen
 
HTML und XHTML | CSS | JavaScript und DHTML | PHP und MySQL | Andere Sprachen
Letzter Update: 23.10.2010