Thorsten: Datei senden mit PHP

Hi,

habe ein Problem mit dem Senden (eigentlich mehr mit dem Erstellen) einer Datei an den Benutzer aus PHP heraus.

Mein Problem ist, das ich dem User eine Datei sende, aber die Zeilenumbrüche nicht ankommen.

Der Header müsste richtig sein, weil dem Benutzer die Datei ja zum Download angeboten wird:

header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename="test.txt"");

Und egal, ob ich:

echo "1. Zeile\n";
echo "2. Zeile";

oder:

echo "1. Zeile".chr(10).chr(13);
echo "2. Zeile";

schreibe, der Zeilenumbruch erscheint lediglich als das berühmt berüchtigte kleine Kästchen. Bei der chr Methode erscheint jeweils ein Kästchen je CHR Befehl.

Wie kriege ich denn da Zeilenumbrüche rein, die dann später auch als solche interpretiert werden?

Gruss
Thorsten

  1. Hi,

    Wie kriege ich denn da Zeilenumbrüche rein, die dann später auch als solche interpretiert werden?

    Hast du das Ergebnis mit einem Browser angeschaut? Ein Zeilenumbruch wäre dann wohl <br>.

    Geh doch mal in den Quellcode. Sind dort die Zeilen getrennt?

    Kalle

    1. Hast du das Ergebnis mit einem Browser angeschaut? Ein Zeilenumbruch wäre dann wohl <br>.

      Nein, was hat der Browser damit zu tun? Ich will ja kein HTML erzeugen. Der BR Tag erzeugt nur einen dargestellten Zeilenumbruch, ich möchte aber einen 'tatsächlichen'.

  2. Hallo!

    Ich glaube in PHP muß man für eine neue Zeile immer "\n\r" verwenden. Probier das mal, klappt bei mir.

    Gruß

    Matthias

    --
    ss:| zu:| ls:[ fo:| de:] va:) ch:? sh:) n4:( rl:( br:> js:| ie:% fl:) mo:}
    http://www.makaio.de/quotations
    1. Hallo!

      Ich glaube in PHP muß man für eine neue Zeile immer "\n\r" verwenden. Probier das mal, klappt bei mir.

      JAPP - das isses! Danke!

      Verstehen zu ich's zwar nicht ganz, denn wenn ich einen Zeilenumbruch in HTML haben will, genügt ja auch ein \n, aber ok, ich nehm das mal so hin.
      Vielleicht hat jemand noch ne Erklärung dafür parat.. Fürs Archiv. Und für mich ;-) (Wissensdurst)

      Gruss
      Thorsten

  3. Hallo Thorsten,

    echo "1. Zeile\n";
    echo "2. Zeile";

    Du nutzt Windows?

    echo "1. Zeile\r\n";
    echo "2. Zeile\r\n";

    Gruß,
    small-step

    1. Yo, danke - Matthias war etwas schneller ;-)

      siehe dazu aber auch noch meine Antwort auf Matthias' Posting..