Textdatei "umdrehen" (letzte Zeile = erste Zeile)
Textdatei "umdrehen" (letzte Zeile = erste Zeile)
am 21.07.2006 13:05:23 von stryker1
Hallo zusammen!
Ich lade derzeit den Inhalt einer Textdatei (bestehend aus 10 Zeilen) per
file_get_contents in einen String. Ich möchte nun aber ganz gerne, dass die
Reihenfolge der Zeilen innerhalb der Textdatei umgedreht werden. Sprich: die
letzte Zeile soll als erstes ausgelesen werden, dann die Vorletzte usw.
Mit welchem/welchen Befehl/Befehlen könnte ich das wohl realisieren?
Danke für Tipps,
Daniel
Re: Textdatei "umdrehen" (letzte Zeile = erste Zeile)
am 21.07.2006 13:18:32 von Wolfgang Fellger
Daniel Mueller schrieb:
>Mit welchem/welchen Befehl/Befehlen könnte ich das wohl realisieren?
file() liefert dir die Datei zeilenweise in einem Array.
Dann entweder:
A) array_reverse,
implode,
file_set_contents
oder
B) fopen,
Array mit for von unten nach oben durchgehen,
Zeilen mit fwrite rausschreiben,
fclose.
HTH,
--
Wolfgang Fellger
Re: Textdatei "umdrehen" (letzte Zeile = erste Zeile)
am 21.07.2006 13:19:51 von Christian Schmelzer
Daniel Mueller wrote:
> Hallo zusammen!
>
> Ich lade derzeit den Inhalt einer Textdatei (bestehend aus 10 Zeilen)
> per file_get_contents in einen String. Ich möchte nun aber ganz
> gerne, dass die Reihenfolge der Zeilen innerhalb der Textdatei
> umgedreht werden. Sprich: die letzte Zeile soll als erstes ausgelesen
> werden, dann die Vorletzte usw.
> Mit welchem/welchen Befehl/Befehlen könnte ich das wohl realisieren?
>
> Danke für Tipps,
> Daniel
Hallo,
ja womit könnte man das wohl realisieren? Datei mit file in ein Array
einlesen und dieses dann mit array_reverse umdrehen.
http://de.php.net/manual/en/function.file.php
http://de.php.net/manual/de/function.array-reverse.php
Christian
Re: Textdatei "umdrehen" (letzte Zeile = erste Zeile)
am 21.07.2006 13:20:22 von Johannes Vogel
Hi Daniel
Daniel Mueller wrote:
> Ich lade derzeit den Inhalt einer Textdatei (bestehend aus 10 Zeilen) per
> file_get_contents in einen String. Ich möchte nun aber ganz gerne, dass die
> Reihenfolge der Zeilen innerhalb der Textdatei umgedreht werden. Sprich: die
> letzte Zeile soll als erstes ausgelesen werden, dann die Vorletzte usw.
> Mit welchem/welchen Befehl/Befehlen könnte ich das wohl realisieren?
Splitte einfach den String in ein Array und dreh das um.
$filecontent = file_get_contents('filename');
$umgekehrt = array_reverse(split("\n", $filecontent));
foreach ($umgekehrt as $line) print $line."\n";
Achte darauf, dass verschiedene Systeme \n, \r oder \r\n benutzen.
HTH, Johannes
Re: Textdatei "umdrehen" (letzte Zeile = erste Zeile)
am 21.07.2006 13:22:36 von dev-null-use-reply-adress
Daniel Mueller schrieb:
> Ich lade derzeit den Inhalt einer Textdatei (bestehend aus 10 Zeilen) per
> file_get_contents in einen String. Ich möchte nun aber ganz gerne, dass die
> Reihenfolge der Zeilen innerhalb der Textdatei umgedreht werden. Sprich: die
> letzte Zeile soll als erstes ausgelesen werden, dann die Vorletzte usw.
> Mit welchem/welchen Befehl/Befehlen könnte ich das wohl realisieren?
Lade die Datei erst in ein Array, drehe das um und mache
daraus dann einen String.
$str = implode('', array_reverse(file('datei.txt')));
Gruß
JPM
Re: Textdatei "umdrehen" (letzte Zeile = erste Zeile)
am 21.07.2006 17:02:58 von stryker1
Danke euch allen für die seeeehr schnelle Hilfe!
Der Trick mit array_reverse ist echt gut...
Daniel
"Jens Peter Moeller" schrieb im
Newsbeitrag news:44c0b8f0$0$24895$9b4e6d93@newsread4.arcor-online.net...
> Daniel Mueller schrieb:
>> Ich lade derzeit den Inhalt einer Textdatei (bestehend aus 10 Zeilen) per
>> file_get_contents in einen String. Ich möchte nun aber ganz gerne, dass
>> die
>> Reihenfolge der Zeilen innerhalb der Textdatei umgedreht werden. Sprich:
>> die
>> letzte Zeile soll als erstes ausgelesen werden, dann die Vorletzte usw.
>> Mit welchem/welchen Befehl/Befehlen könnte ich das wohl realisieren?
>
> Lade die Datei erst in ein Array, drehe das um und mache
> daraus dann einen String.
> $str = implode('', array_reverse(file('datei.txt')));
>
>
> Gruß
> JPM
Re: Textdatei "umdrehen" (letzte Zeile = erste Zeile)
am 21.07.2006 18:57:52 von do.not.REMOVETHAT
Daniel Mueller schrieb:
> Der Trick mit array_reverse
"Trick"?
Man sollte das PHP-Manual etwas umbauen/umformulieren. Gerade war ich
wieder in einem Geschäft und habe mir die Computerzeitschriften in der
Zeitschriftenabteilung angesehen. Der Sprachgebrauch hat sich gewandelt.
Angesichts dieses Wandels scheint die nachlassende Akzeptanz einer
"Funktionsreferenz" verständlich.
"Funktionsreferenz", "Sprachreferenz" und "Handbuch" scheinen als
Bezeichnungen in der heutigen Zeit nicht mehr angemessen. Ich schlage
stattdessen vor, dass man die Inhalte in Zukunft unter dem Titel
"1000 ganz geheime Tricks für PHP"
veröffentlichen sollte. Auch die FAQ könnte einen neuen Titel
gebrauchen. Ich schlage vor: "Die Zend-Geheimakte: Was Sie nicht über
PHP wissen sollen" mit dem Untertitel "PHP-Insider packen aus" oder so.
Auf den Einleitungsseiten zu den einzelnen Kapiteln könnte man auch
etwas mehr herausstellen, was man mit den entsprechenden Funktionen für
"tolle, illegale Sachen" machen kann.
Vorher:
13.3. Wie realisiere ich einen Dateidownload mit PHP?
Neu:
13.3. Wie realisiere ich einen MP3-Warez-Download mit PHP?
Vorher:
13.5. Wie kann ich eine Datei zeilenweise rückwärts auslesen?
Neu:
13.5. Wie kann ich die Zeilenreihenfolge in einer Datei fälschen?
Vorher:
15.13. Wie kann ich den Absender meiner Mail festlegen?
Neu:
15.13. Wie kann ich den Absender einer E-Mail fälschen?
....etc. Ich kenne jemanden, der schreibt für Computerzeitschriften. Der
könnte vielleicht helfen...
Grüße, Matthias
Re: Textdatei "umdrehen" (letzte Zeile = erste Zeile)
am 21.07.2006 18:58:36 von Gregor Kofler
Daniel Mueller meinte:
> Danke euch allen für die seeeehr schnelle Hilfe!
>
> Der Trick mit array_reverse ist echt gut...
Was ist an einer ausführlich dokumentierten Funktion "trickreich"? Oder
ist Handbuchlesen nicht so das deine?
Gruß, Gregor
--
http://www.gregorkofler.at ::: Landschafts- und Reisefotografie
http://www.licht-blick.at ::: Forum für Multivisionsvorträge
http://www.image2d.com ::: Bildagentur für den alpinen Raum
Re: Textdatei "umdrehen" (letzte Zeile = erste Zeile)
am 21.07.2006 19:20:02 von Robert Passmann
Am Fri, 21 Jul 2006 13:05:23 +0200 schrieb Daniel Mueller:
> Hallo zusammen!
>
> Ich lade derzeit den Inhalt einer Textdatei (bestehend aus 10 Zeilen) per
> file_get_contents in einen String. Ich möchte nun aber ganz gerne, dass die
> Reihenfolge der Zeilen innerhalb der Textdatei umgedreht werden. Sprich: die
> letzte Zeile soll als erstes ausgelesen werden, dann die Vorletzte usw.
> Mit welchem/welchen Befehl/Befehlen könnte ich das wohl realisieren?
>
> Danke für Tipps,
> Daniel
Hallo Daniel,
wenn du eine Textdatei in einen String einliest, werden Leerzeilen nicht
beachtet. Probiere einmal aus, dein String mit echo() auszugeben.
Ich in die Datei desshalb Trennzeichen einsetzen, und den String mit
explode() trennen. Da du weißt, das du genau 10 Zeilen hast, kannst du sie
auch ganze einfach rückwärts ausgeben $ausgabe['9'] bis $ausgabe['0'].
Gruß,
Robert
Re: Textdatei "umdrehen" (letzte Zeile = erste Zeile)
am 21.07.2006 20:02:36 von unknown
Post removed (X-No-Archive: yes)
Re: Textdatei "umdrehen" (letzte Zeile = erste Zeile)
am 21.07.2006 20:24:16 von Christian Schmelzer
Robert Passmann wrote:
> Am Fri, 21 Jul 2006 13:05:23 +0200 schrieb Daniel Mueller:
>
>> Hallo zusammen!
>>
>> Ich lade derzeit den Inhalt einer Textdatei (bestehend aus 10
>> Zeilen) per file_get_contents in einen String. Ich möchte nun aber
>> ganz gerne, dass die Reihenfolge der Zeilen innerhalb der Textdatei
>> umgedreht werden. Sprich: die letzte Zeile soll als erstes
>> ausgelesen werden, dann die Vorletzte usw.
>> Mit welchem/welchen Befehl/Befehlen könnte ich das wohl realisieren?
>>
>> Danke für Tipps,
>> Daniel
>
> Hallo Daniel,
>
Hallo,
> wenn du eine Textdatei in einen String einliest, werden Leerzeilen
> nicht beachtet. Probiere einmal aus, dein String mit echo()
> auszugeben.
Oha, das ist ja was ganz neues.
> Ich in die Datei desshalb Trennzeichen einsetzen, und den String mit
> explode() trennen. Da du weißt, das du genau 10 Zeilen hast, kannst
> du sie auch ganze einfach rückwärts ausgeben $ausgabe['9'] bis
> $ausgabe['0'].
Hm, was sollen die ' da? Und es sind immer 10 Zeilen?
Christian
Re: Textdatei "umdrehen" (letzte Zeile = erste Zeile)
am 21.07.2006 23:12:03 von Ulf Kadner
Matthias P. Wuerfl wrote:
> Man sollte das PHP-Manual etwas umbauen/umformulieren. Gerade war ich
> wieder in einem Geschäft und habe mir die Computerzeitschriften in der
> Zeitschriftenabteilung angesehen. Der Sprachgebrauch hat sich gewandelt.
> Angesichts dieses Wandels scheint die nachlassende Akzeptanz einer
> "Funktionsreferenz" verständlich.
>
> "Funktionsreferenz", "Sprachreferenz" und "Handbuch" scheinen als
> Bezeichnungen in der heutigen Zeit nicht mehr angemessen. Ich schlage
> stattdessen vor, dass man die Inhalte in Zukunft unter dem Titel
>
> "1000 ganz geheime Tricks für PHP"
Das gibt irgendwie auch meine Meinung dazu wieder. Wunderbar formuliert! :-)
Danke fuer den abendlichen Lachexkurs!
MfG, Ulf
Re: Textdatei "umdrehen" (letzte Zeile = erste Zeile)
am 21.07.2006 23:14:45 von Frank Schenk
Matthias P. Wuerfl schrieb:
> "Trick"?
>
> Man sollte das PHP-Manual etwas umbauen/umformulieren. Gerade war ich
> wieder in einem Geschäft und habe mir die Computerzeitschriften in der
> Zeitschriftenabteilung angesehen. Der Sprachgebrauch hat sich gewandelt.
> Angesichts dieses Wandels scheint die nachlassende Akzeptanz einer
> "Funktionsreferenz" verständlich.
>
> "Funktionsreferenz", "Sprachreferenz" und "Handbuch" scheinen als
> Bezeichnungen in der heutigen Zeit nicht mehr angemessen. Ich schlage
> stattdessen vor, dass man die Inhalte in Zukunft unter dem Titel
>
> "1000 ganz geheime Tricks für PHP"
Also da sollte mindestens noch was mit Windows XP, cool, YourServer
auftauchen.
1000 coole PHP Trixx für your private MS WINDOWS XP Server mit PHP
Untertitel
Perfect Homepage Programming for Dummies
Aber ich schweife ab.
gruß, Frank
P.S.: Ich will ne Belegausgabe Matthias :)
F'up-to: darw
Re: Textdatei "umdrehen" (letzte Zeile = erste Zeile)
am 21.07.2006 23:19:34 von Helmut Chang
Robert Passmann schrieb:
> wenn du eine Textdatei in einen String einliest, werden Leerzeilen nicht
> beachtet.
Das glaubst du wahrscheinlich, weil Zeilenumbruch text/plain !=
Zeilenumbruch text/html und dir das anscheinend nicht bekannt ist.
> Probiere einmal aus, dein String mit echo() auszugeben.
Und sieh dir den erzeugten Quelltext an. Oder mach am Anfang
header('Content-Type: text/plain');
gruss, heli