WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   PHP: Textdatei zeilenweise verkehrt ausgeben? (http://www.wcm.at/forum/showthread.php?t=93791)

Gizmotic 11.04.2003 01:34

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!

jonix 11.04.2003 07:46

waer das was fuer dich?
Code:

<HTML>
<HEAD>
 <TITLE>TEST</TITLE>
</HEAD>

<BODY>

<?
$buffer = "";

$handle = fopen ("inputfile.txt", "r");
while (!feof($handle))
{
  $buffer = fgets($handle, 4096) . $buffer;
}
fclose ($handle);

echo "<PRE>".$buffer."</PRE>";
?>

</BODY>
</HTML>

ps: bei mir am localhost hat's mit 50000 zeilen zwar funktioniert, ich koennt mir aber vorstellen, dass 1. die standard max_execution_time (30 sek) hier auf jeden fall zuwenig ist, und zweitens hat auch der ie beim anzeigen alle haende voll zu tun gehabt (hat ca. 15 min gedauert) - ob's sinnvoll ist, 50000 zeilen im browser auszugeben...?

Gonte 11.04.2003 08:43

wieso so kompliziert?

PHP-Code:

$line_array=array_reverse(file("test.txt")); 


jonix 11.04.2003 08:58

wieso einfach wenns umstaendlich auch geht? :-)

*verbeug*

Gizmotic 11.04.2003 11:54

:eek: :eek: :eek: Wow, dass es derart einfach geht ist ja sagenhaft!
Vielen Dank!!!

Zitat:

Original geschrieben von Gonte
wieso so kompliziert?

PHP-Code:

$line_array=array_reverse(file("test.txt")); 



_m3 11.04.2003 11:56

Zitat:

Original geschrieben von Gonte
wieso so kompliziert?

PHP-Code:

$line_array=array_reverse(file("test.txt")); 


Memory hog! :eek:

Gizmotic 11.04.2003 13:17

Zitat:

Original geschrieben von _m3
Memory hog! :eek:
Und wie würdest du es besser machen ... ?

_m3 11.04.2003 13:44

fopen, fseek, fread, ...
http://at.php.net/manual/de/ref.filesystem.php
Mit einer grossen Datei kommt er sonst aus dem Swappen nicht heraus ;)

jonix 11.04.2003 13:59

hilft dir in dem fall auch nix (imho), da damit die variable, wo du des file von hinten nach vorn reinscheibst, ins unermessliche waechst...

_m3 11.04.2003 14:10

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" ;)


Alle Zeitangaben in WEZ +2. Es ist jetzt 22:46 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag