![]() |
PHP: Textdatei zeilenweise verkehrt ausgeben?
Hallo!
Ich bräuchte einen möglichst effektiven PHP-Code um Textdateien zu öffnen und sie zeilenweise verkehrt auszugeben. Also aus abc edf ghi soll werden: ghi edf abc Es sind ziemlich grosse Textdateien mit über 50.000 Zeilen. Die Dateizeilen in ein Array zu laden und das Array verkehrt auszugeben ist hier wohl etwas zu speicherintensiv. Kann man nicht einfach statt while($line = fgets($fp, 1024)) { ... } festlegen, dass er am Dateiende zum Lesen beginnen soll ? Freu mich über jede Hilfe! |
waer das was fuer dich?
Code:
<HTML> |
wieso so kompliziert?
PHP-Code:
|
wieso einfach wenns umstaendlich auch geht? :-)
*verbeug* |
:eek: :eek: :eek: Wow, dass es derart einfach geht ist ja sagenhaft!
Vielen Dank!!! Zitat:
|
Zitat:
|
Zitat:
|
fopen, fseek, fread, ...
http://at.php.net/manual/de/ref.filesystem.php Mit einer grossen Datei kommt er sonst aus dem Swappen nicht heraus ;) |
hilft dir in dem fall auch nix (imho), da damit die variable, wo du des file von hinten nach vorn reinscheibst, ins unermessliche waechst...
|
Ich schreib sie ja nicht in eine variable, sondern entweder auf den output oder wieder in eine datei.
er hat ja nich gesagt, dass er sie in einer Variablen speichern will, sondern nur "ausgeben" ;) |
ok - mein fehler. in a datei schreiben is so natuerlich machbar. da haett ich auch mit meiner methode kein problem.
andere frage: wie findest denn mit fseek() die position am jeweils vorangehenden zeilenanfang? |
wozu zeilenanfang?
einfach byteweise auslesen, reppos, auslesen, repos, .... ein byte ist ein byte, wurscht ob ASCII, Unicode,Binary. Und ob das Byte nun ein Character oder ein Steuerzeichen ist (CR oder LF oder doch beides (siehe Unix vs. Windows vs. Mac) ist mir dann auch wurscht ;) |
das ist aber nicht die gesuchte loesung des problems, "wauns mi frogn" ;-)
es sollen ja die einzelnen (gesamten) zeilen von unten nach oben ausgegeben werden, oder? ps: bzgl. der memory-problematik bin ich uebrg. der selben meinung - siehe auch http://www.php.net/manual/en/function.readfile.php ganz unten |
OK, er wills zeilenweise und nicht zeichenweise umdrehen, hast recht.
Dann muss man in eine Variable schreiben und diese ausgeben, wenn das aktuelle Zeichen ein CR und/oder LF ist. |
| Alle Zeitangaben in WEZ +2. Es ist jetzt 23:53 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag