CSV-Excel verursacht Leerzeile

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • CSV-Excel verursacht Leerzeile

    Hallo,

    ich speichere Formulareingaben, also die Variablen in CSV-Dateien, einfach nach dem Muster

    PHP-Code:
    <? 
    $fh=fopen('data.csv', 'a');
    fwrite($fh, "$Nachname;$Vorname;$eMail\r\n"); 
    fclose($fh);
    ?>
    Das funktioniert ja auch tadellos.
    Wenn ich aber die 'data.csv' danach mit Excel öffne, dann befindet sich zwischen jedem Eintrag eine Leerzeile, also jede zweite Zeile ist leer.

    Wo liegt denn hier der Hund begraben?
    Ich fand noch nichts Hilfreiches.

    Danke,
    Thomas

  • #2
    Nimm \n statt \r\n als Zeilenumbruch.

    Kommentar


    • #3
      Das hatte ich auch schon gemacht, der Effekt bleibt aber derselbe.

      Kommentar


      • #4
        $eMail endet auch ganz sicher nicht mit einen Umbruch?

        Kommentar


        • #5
          steht exakt so im script wie oben angegeben, also $eMail/n .

          Lediglich im mail-tag steht eMail als:

          ...Telefon: $Telefon\neMail: $eMail\n\n...

          Aber das dürfte ja bei der Variablen-Übergabe keine Rolle spielen.

          Kommentar


          • #6
            Original geschrieben von kayleigh
            steht exakt so im script wie oben angegeben, also $eMail/n .
            Ja aber was ist der aktuelle Wert von $eMail?!? Könnte schließlich 'foo@bar.com\n' sein ...
            Lediglich im mail-tag steht eMail als:

            ...Telefon: $Telefon\neMail: $eMail\n\n...

            Aber das dürfte ja bei der Variablen-Übergabe keine Rolle spielen.
            Was redest du plötzlich für Zeug?

            Kommentar


            • #7
              Nein, die eMail wird ja im Formular eingegeben, da ist dann kein weiteres "\n".

              Was ich für Zeug rede? (smile)

              Die eingegebenen Daten werden gleichzeitig auch per mail-tag verschickt, und in der verschickten mail sind nach eMail dann 2 x \n vorhanden, einfach zwecks Layout der mail.

              Habe das Ganze auch schon mit nur einer Variablen probiert, also nur dem Nachnamen z.B., in Excel bleibt aber doch die Leerzeile.
              Daran liegt es also nicht.

              Kommentar


              • #8
                Schreib mal folgendes Testscript, rufe es auf und öffne die Datei ausgabe.csv (Link) anschließend mit Excel:
                PHP-Code:
                <?php
                $fh
                =fopen('ausgabe.csv''a');
                fwrite($fh"Nachname;Vorname;eMail\n");
                fwrite($fh"Nachname;Vorname;eMail\n");
                fwrite($fh"Nachname;Vorname;eMail\n");
                fclose($fh);
                echo 
                '<a href="ausgabe.csv">Ausgabe</a>';
                ?>

                Kommentar


                • #9
                  Habe ich gemacht, nun gibt Excel keine Leerzeilen mehr aus ???

                  Kommentar


                  • #10
                    Damit wäre bewiesen, dass $eMail eben doch einen Zeilenumbruch enthält. Kannst das auch gern nochmal überprüfen mit
                    PHP-Code:
                    echo '-> eMail: '.nl2br($eMail).' <-';
                    $fh=fopen('data.csv''a');
                    fwrite($fh"$Nachname;$Vorname;$eMail\r\n"); 
                    fclose($fh); 
                    Falls dabei -> und <- nicht auf einer Zeile stehen, dann rtrim($eMail) ...

                    Kommentar


                    • #11
                      -> und <- stehen in einer Zeile. Die sehe ich aber nur für einen Sekundenbruchteil weil das Formular mit dem action-tag eine Bestätigungsseite aufruft, eben die "senden.php" die die gemachten Eingaben nochmals anzeigt.

                      Kann die Dateien hier aber halt nicht öffentlich machen..., sonst würde ich sie Dir gerne mal zukommen lassen, dann ist die Sache vielleicht klarer.

                      Kommentar


                      • #12
                        Kann doch nicht so schwer sein!
                        PHP-Code:
                        fwrite($fhtrim($Nachname).';'.trim($Vorname).';'.trim($eMail)."\n"); 

                        Kommentar


                        • #13
                          Anscheinend schon,
                          auch mit dieser Zeile bleibt der Effekt genau derselbe...

                          Kommentar


                          • #14
                            Sag mal ich bin doch nicht dein Debugger!
                            Es hat doch oben schon mal funktioniert, da wurden einfach keine Variablen verwendet. Folglich liegt es an deinen Variablen, genauer an $eMail.

                            Mach Testausgaben!

                            Kommentar

                            Lädt...
                            X