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