Andre: Unerklärliche Leerzeichen in Textfile

Hallo!

Ich werte eine oracle Datenbank per PHP aus. Alles wunderbar. Jetzt möchte ich aber mit einem Download Link die Ergebnisse als CSV Datei (Format ASCII Text) senden.

Dazu sende ich den Header:

header("Content-Type: text");

Danach folgen mehrere Berechnungen, SQL Abfragen und foreach Schleifen. Jedoch keine einzige Textausgabe. Diese erfolgt erst am Ende der Datei - dennoch habe ich gut 50 Leerzeilen vor dem eigentlichen Text.

Ein verschieben des Headers innerhalb der PHP Datei bringt auch nicht das gewünschte Ergebnis.

Zwar sind die Dateien auch mit den Leerzeilen brauchbar, aber sehr unschön - und genau das soll vermieden bleiben.

Als HTML oder pre kann ich die Datei nicht senden. Es muss(!) ein "speichern oder öffnen" Dialog erscheinen, damit die reine ASCII Datei dann z.B. in Excel weiterverarbeitet werden kann.

Ich habe schonmal hier im Forum gesucht, aber leider nur Lösungen gefunden, falls die Textdatei auf dem Server gespeichert ist (also rausfiltern der Leerzeilen). Nur in diesem Fall soll die Datei ja umgehend an den Browser gesendet werden und nicht erst gespeichert.

Danke im vorraus für eure Hilfe! :-)

  1. Hallo Andre,

    Dazu sende ich den Header:
     header("Content-Type: text");

    meinst du header("Content-type:text/plain");?

    Danach folgen mehrere Berechnungen, SQL Abfragen und foreach Schleifen. Jedoch keine einzige Textausgabe. Diese erfolgt erst am Ende der Datei - dennoch habe ich gut 50 Leerzeilen vor dem eigentlichen Text.

    mhh... vielleicht baust du irgendwo unabsichtlich \n's ein? sonst kann ich aber auch nichts sagen kann man den Code vielleicht irgendwo mal anschauen?

    Es muss(!) ein "speichern oder öffnen" Dialog erscheinen,

    naja, da wirst du beim IE so deine Problem haben - der versucht alles darzustellen, was irgendwie darstellbar ist (ich weiß aber nicht, wie er sich bei einer Datei die auf .csv endet verhält. Im Allgemeine sollte dann aber ein header("Content-Type:application/octet-stream") hin (ein header("Content-Disposition: attachment; filename=datei.csv"); hilft vielleicht auch) ->http://www.php.net/header

    Grüße aus Nürnberg
    Tobias

    --
    Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|
    1. Hallo Andre,

      meinst du header("Content-type:text/plain");?

      Eigentlich schon, nur ohne das plain hat er mir die Datei als Download angeboten... *g* Aber auch mit korrekten Headern und den anderen Header-Vorschlägen hängt der mir die 50 Leerzeilen an den Anfang.

      mhh... vielleicht baust du irgendwo unabsichtlich \n's ein? sonst kann ich aber auch nichts sagen kann man den Code vielleicht irgendwo mal anschauen?

      Das ist meine Vermutung. Jedoch finde ich nichts, wo das Problem liegen könnte :-( Den Code kannst du dir hier mal anschauen:
      http://www.braekling.de/other_stuff/code.txt
      Mir ist gerade der INCLUDE zur init.php aufgefallen, die hat ein Kollege geschrieben, schau mir die Datei jetzt mal an, nicht das das Problem da liegt...

      Gruß aus Aachen

      André

      1. Hmmm... mein Verdacht hat sich bestätigt... muss ich wohl noch die ganzen übernommen Funktionen durchackern, ob da irgendwo das Problem steckt...

        Oder gibts ne Möglichkeit bereits gesendete Zeichen wieder "zurückzunehmen"? So in der Art clear_output oder was weiß ich :(

        Ansonsten muss ich wohl Überstunden machen und Leerzeilen suchen ;)

        1. Hallo André,

          Hmmm... mein Verdacht hat sich bestätigt... muss ich wohl noch die ganzen übernommen Funktionen durchackern, ob da irgendwo das Problem steckt...

          :-) - Code?

          Oder gibts ne Möglichkeit bereits gesendete Zeichen wieder "zurückzunehmen"? So in der Art clear_output oder was weiß ich :(

          nein, soweit ich weiß nicht

          Ansonsten muss ich wohl Überstunden machen und Leerzeilen suchen ;)

          tja :-) - und der Kollege wird einen kräftigen Anschiss ernten,oder? :-)

          übrigends: http://www.braekling.de/other_stuff/code.txt gibt einen 404er - is aber interessant, was da noch so in dem Verzeichnis ist :-)

          Grüße aus Nürnberg
          Tobias

          --
          Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|
          1. tja :-) - und der Kollege wird einen kräftigen Anschiss ernten,oder? :-)

            Ja, wird er kriegen wenn er morgen wieder da ist... wieso macht der auch in einer init.php 50 Leerzeilen hinter den abschliessenden ?> *grummel* Und ich suche schon den halben Nachmittag nach einem Fehler bei mir *grmpf*

            übrigends: http://www.braekling.de/other_stuff/code.txt gibt einen 404er - is aber interessant, was da noch so in dem Verzeichnis ist :-)

            Jup, hatte den wieder rausgenommen als ich festgestellt habe das der Fehler da nicht drin liegt :) Das Dir ist bestimmt interessant, liegen alle Sachen die ich mal zwischenspeichern musste und mein noch streng geheimes (naja, so geheim auch wieder nicht ;)) Online Spiel Projekt... was aber erstmal auf Eis liegt... soviele Projekte... *stöhn* ;)

            Aber danke für deine Hilfe :) Vor allem die Header sind ganz praktisch :)