Datei Zeile für Zeile auslesen
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
angeben
antwort
beispiel
code
datei
dokumentation
einlesen
erfolgreich erstellt aktualisiert code
file
http
kommentar
list
manual
point
pointer
problem
schau
schleife
verweis
zeile
-
Hallo,
aufgrund diesen Threads (http://www.lima-city.de/boards/thread/68489) mach hab ich mal eine neue Frage:
Wie kann ich eine Datei Zeile für Zeile durchgehen, ohne die ganze Datei immer einlesen zu müssen, sonder nur immer die eine Zeile??
file() liest ja zB die ganze ein, und so kann ich die Datei mit einer foreach-Schleife durchgehen.
Doch kann man das Speicherschonender machen? -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Kann das dann so gehen:
<?php $datei = fopen(\"memberfile_tribe.txt\\\",\"w\\\") or die(\'Datei konnte nicht erstellt werden!\'); // hier der ungeteste Code $lines = fopen(\"tribe.txt\\\",\"w\\\") or die(\'Datei konnte nicht geoeffnet werden!\'); foreach ($lines as $line) { list($id, $name, $ally, $villages, $points, $rank) = explode(\',\', $line); if($ally==1842) //1842 ist die ID von ~K34~ { fwrite($datei, trim($id)); fwrite($datei, \"rn\\\"); } } rewind($datei); fclose($datei); echo \"<b>Datei erfolgreich erstellt/aktualisiert!</b>\\\"; ?>
-
Nein, da fopen() dir nur den Pointer, der auf eine Datei verweist zurückgibt. Du musst das doch mit fgets() machen, so wie bladehunter es schon gesagt hatte.
Schau dir einfach mal das Beispiel in der PHP-Dokumentation und die Beispiele bei den Kommentaren da an. ;)
http://de2.php.net/manual/de/function.fgets.php -
Nein, da fopen() dir nur den Pointer, der auf eine Datei verweist zurückgibt. Du musst das doch mit fgets() machen, so wie bladehunter es schon gesagt hatte.
Schau dir einfach mal das Beispiel in der PHP-Dokumentation und die Beispiele bei den Kommentaren da an. ;)
http://de2.php.net/manual/de/function.fgets.php
Dann müsste es so gehen, ansonsten gib ichs auf.
<?php $datei = fopen(\"memberfile_tribe.txt\\\",\"w\\\") or die(\'Datei konnte nicht erstellt werden!\'); // hier der ungeteste Code $handle = fopen(\"tribe.txt\\\",\"w\\\") or die(\'Datei konnte nicht geoeffnet werden!\'); while (!feof($handle)) { $line = fgets($handle); // Was soll ich da als lengh angeben?? list($id, $name, $ally, $villages, $points, $rank) = explode(\',\', $line); if($ally==1842) //1842 ist die ID von ~K34~ { fwrite($datei, trim($id)); fwrite($datei, \"rn\\\"); } } rewind($datei); fclose($datei); fclose ($handle); echo \"<b>Datei erfolgreich erstellt/aktualisiert!</b>\\\"; ?>
PS.: Es sind einige \\ zu viel drin -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage