WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 11.04.2003, 01:34   #1
Gizmotic
Veteran
 
Registriert seit: 05.10.2000
Beiträge: 306


Frage 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!
Gizmotic ist offline   Mit Zitat antworten
Alt 11.04.2003, 07:46   #2
jonix
Veteran
 
Registriert seit: 03.08.2000
Alter: 47
Beiträge: 461


Standard

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...?
____________________________________
hampel.at
jonix ist offline   Mit Zitat antworten
Alt 11.04.2003, 08:43   #3
Gonte
Veteran
 
Registriert seit: 15.08.2001
Alter: 51
Beiträge: 235


Standard

wieso so kompliziert?

PHP-Code:
$line_array=array_reverse(file("test.txt")); 
Gonte ist offline   Mit Zitat antworten
Alt 11.04.2003, 08:58   #4
jonix
Veteran
 
Registriert seit: 03.08.2000
Alter: 47
Beiträge: 461


Standard

wieso einfach wenns umstaendlich auch geht?

*verbeug*
____________________________________
hampel.at
jonix ist offline   Mit Zitat antworten
Alt 11.04.2003, 11:54   #5
Gizmotic
Veteran
 
Registriert seit: 05.10.2000
Beiträge: 306


Standard

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")); 
Gizmotic ist offline   Mit Zitat antworten
Alt 11.04.2003, 11:56   #6
_m3
Inventar
 
Registriert seit: 24.09.2001
Beiträge: 7.335


Standard

Zitat:
Original geschrieben von Gonte
wieso so kompliziert?

PHP-Code:
$line_array=array_reverse(file("test.txt")); 
Memory hog!
____________________________________
Weiterhin zu finden auf http://martin.leyrer.priv.at , http://twitter.com/leyrer , http://www.debattierclub.net/ , http://www.tratschen.at/ und via Instant Messaging auf Jabber: m3 <ät> cargal.org .
_m3 ist offline   Mit Zitat antworten
Alt 11.04.2003, 13:17   #7
Gizmotic
Veteran
 
Registriert seit: 05.10.2000
Beiträge: 306


Standard

Zitat:
Original geschrieben von _m3
Memory hog!
Und wie würdest du es besser machen ... ?
Gizmotic ist offline   Mit Zitat antworten
Alt 11.04.2003, 13:44   #8
_m3
Inventar
 
Registriert seit: 24.09.2001
Beiträge: 7.335


Standard

fopen, fseek, fread, ...
http://at.php.net/manual/de/ref.filesystem.php
Mit einer grossen Datei kommt er sonst aus dem Swappen nicht heraus
____________________________________
Weiterhin zu finden auf http://martin.leyrer.priv.at , http://twitter.com/leyrer , http://www.debattierclub.net/ , http://www.tratschen.at/ und via Instant Messaging auf Jabber: m3 <ät> cargal.org .
_m3 ist offline   Mit Zitat antworten
Alt 11.04.2003, 13:59   #9
jonix
Veteran
 
Registriert seit: 03.08.2000
Alter: 47
Beiträge: 461


Standard

hilft dir in dem fall auch nix (imho), da damit die variable, wo du des file von hinten nach vorn reinscheibst, ins unermessliche waechst...
____________________________________
hampel.at
jonix ist offline   Mit Zitat antworten
Alt 11.04.2003, 14:10   #10
_m3
Inventar
 
Registriert seit: 24.09.2001
Beiträge: 7.335


Standard

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"
____________________________________
Weiterhin zu finden auf http://martin.leyrer.priv.at , http://twitter.com/leyrer , http://www.debattierclub.net/ , http://www.tratschen.at/ und via Instant Messaging auf Jabber: m3 <ät> cargal.org .
_m3 ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 16:20 Uhr.


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