Ankündigung

Einklappen
Keine Ankündigung bisher.

new line

Einklappen

Neue Werbung 2019

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

  • new line

    Hey

    Ich habe ja neulich hier schonmal einen ähnliches Problem gepostet. Ich ahbe aber leide rnoch ein ganz anderes Problem. Ich will Daten aus einer Datenbank haben, ohne dabei informationen zu verlieren. In der Datenbank sind auch Einträge wie \n für newline.
    Wie kann ich das ausgeben, ohne dabei \n zu einer neuen Zeile umgesetzt zu bekommen?

    Danke euch, netti

  • #2
    http://php.net/strtr
    http://php.net/str_replace

    Kommentar


    • #3
      ohne dabei informationen zu verlieren [..] ohne dabei \n zu einer neuen Zeile umgesetzt zu bekommen
      Das ist für mich ein Widerspruch, was genau meinst du?

      Kommentar


      • #4
        warum willst du die den ohne den newline ausgeben?

        p.s. hatte mich schon "gefreut" nl2br() schreiben zu dürfen :P

        Kommentar


        • #5
          danke schonmal für die antworten.
          ich möchte eine Ausgabe erzeugen, wie phpmyadmin, um die DB auch für Unerfahrene leicht zu exportieren zu lassen. Dazu brauche ich aber eine 1:1 Kopie aus der DB. Gebe ich das aus, was in der db steht wird jedes \n in eine neue Zeile umgewandelt, das will ich aber nicht. Und genau das meinte ich. Versteht ihr, was ich meine?! :/

          mit strtr() und str_replace() dürfte das nicht funktionieren.

          Kommentar


          • #6
            Ehrlich gesagt verstehe ich es immernoch nicht.
            Wie willst du es denn anderen zum Exportieren anbieten?

            Kommentar


            • #7
              Zitat von netswipe
              Versteht ihr, was ich meine?!
              Nein.

              Kommentar


              • #8
                okay, beispiel:

                so steht es in phpmyadmin und das ist auch die "normale" anzeigeart, um es später per sql einzufügen in die db:
                INSERT INTO `berichte` VALUES (20, 1139234327, 2006, 'User', 'dasdasd ssdasd', 'sdfgsdfg dsfg', 'Wettkämpfe', 'asdgfs df
                \r\n sad
                \r\nf
                \r\nsa df
                \r\nase
                \r\nf
                \r\nsad', 'gsdfg', '', '', 'training_wettkampf/wettkampf/gsdfg/gband.jpg', 'asdasd', '', '', '', '', '', '', 1, 1);
                Und so wiederrum, wird es mir ausgegeben: Man beachte die kleienn aber gravierenden Unterschiede.
                INSERT INTO `berichte` VALUES (20, 1139234327, 2006, 'User', 'dasdasd ssdasd', 'sdfgsdfg dsfg', 'Wettkämpfe', 'asdgfs df<br />
                sad<br />
                f <br />
                sa df<br />
                ase<br />
                f <br />
                sad', 'gsdfg', '', '', 'training_wettkampf/wettkampf/gsdfg/gband.jpg', 'asdasd', '', '', '', '', '', '', 1, 1);
                Ich möcte nun aber eine komplette ausgabe bekommen, wie bei phpmyadmin.

                Kommentar


                • #9
                  http://php.net/html_entity_decode

                  Kommentar


                  • #10
                    Gerade wolltest Du, wenn ich das richtig sehe, noch das genaue Gegenteil...

                    http://php.net/htmlentities


                    /edit:

                    ...und verschwunden ward der Beitrag.

                    Kommentar


                    • #11
                      das bringt mir in dem zusammenhang leider nichts.

                      Das Problem ist, dass ich einen Text habe, in dem ein Backslash auftaucht. Leider hat der Backslash bstimmte Funktionen. In Verbindung mit einem n gibt er mir eine neue Zeile aus. Soweit richtig?

                      Gut. Ich habe nun ein Script geschrieben,w as mir ausgibt (letzte Variante war ein fehler drin, die html scecial chars sollten nicht codiert werden):
                      INSERT INTO `berichte` VALUES (20, 1139234327, 2006, 'autor', 'dasdasd ssdasd', 'sdfgsdfg dsfg', 'Wettkämpfe', 'asdgfs df

                      sad

                      f

                      sa df

                      ase

                      f

                      sad', 'gsdfg', '', '', 'training_wettkampf/wettkampf/gsdfg/gband.jpg', 'asdasd', '', '', '', '', '', '', 1, 1);
                      INSERT INTO `berichte` VALUES (21, 1139239581, 2006, 'Maik Wachsmuth', 'sdfsdfsdaf as sd', 'asdfasdf', 'Tauchen', 'asdf asdf

                      s



                      ä+sadf a', 'sdfasd', '', '', '', '', '', '', '', '', '', '', 0, 1);
                      phpmyadmin aber sagt (man beachte hier besonders den Unterschied mit den neuen Zeilen in meiner Variante und dem \n in der ausgabe hier)

                      INSERT INTO `berichte` VALUES (21, 1139239581, 2006, 'Autor', 'dasdasd ssdasd', 'sdfgsdfg dsfg', 'Wettkämpfe', 'asdgfs df
                      \r\n sad
                      \r\nf
                      \r\nsa df
                      \r\nase
                      \r\nf
                      \r\nsad', 'gsdfg', '', '', 'training_wettkampf/wettkampf/gsdfg/gband.jpg', 'asdasd', '', '', '', '', '', '', 1, 1);
                      Hab ichs jetzt verständlich gemacht?

                      Nochmal kurz: Oben wird das \n in der AUsgabe durch php zu einer neuen Zeile umgewandelt.
                      Unten jedoch geschieht das nicht und die neue Zeile wird ganz normal ausgegeben.

                      /edit karl-150: tut mir leid, hatte mich gerade in meinem eigenen text verrannt ^^

                      Kommentar


                      • #12
                        Hmpf und was willst du jetzt eigentlich?

                        nl2br() wurde offenbar auf Beispiel 1 angewand. Dass phpMyAdmin Zeilenumbrüche nicht zeigt, liegt wohl eher daran, dass ein normaler Zeilenumbruch (\n) in HTML keine Bedeutung hat (nur
                        ).

                        Vielleicht meinst du addslashes()?
                        Sorry, aber ich verstehe nicht, was das ganze Tralala soll...?

                        Kommentar


                        • #13
                          Zitat von Zergling
                          nl2br() wurde offenbar auf Beispiel 1 angewand.
                          Okay, das ist schonmal korrekt. Aber es ist nachwievor noch \n vorhanden. D.h. aus \n =>
                          \n

                          Zitat von Zergling
                          Dass phpMyAdmin Zeilenumbrüche nicht zeigt, liegt wohl eher daran, dass ein normaler Zeilenumbruch (\n) in HTML keine Bedeutung hat (nur
                          ).
                          phpmyadmin läuft genauso über php, wie mein script auch. Nun schau dur mal genau deren Ausgabe an. Da findet sich das \n, weil es nicht zu einer neuen Zeile umgewandelt wurde.
                          Schaut man sich nun meine Ausgabe an, stellt man fest, dass dort alle \n's zu einer neuen Zeile Umgewandelt wurden - und genau DAS will ich verhindern.

                          Zitat von Zergling
                          Vielleicht meinst du addslashes()?
                          addslashes() wäre eine möglichkeit, funktioniert aber leider aus irgendeinem Grund nicht.

                          ich bringe am besten mal den Code.
                          PHP-Code:
                          <?php
                          //While-Schliefe zum Abrufen der Daten
                          while ($BackUpQueryRep = mysql_fetch_row($BackUpQueryRepSQL)) {
                          //Mit for-Schleife jede Variable ändern (addslashes / htmentities)
                          for ($i = 3; $i <= 18; $i++) {
                           
                          $BackUpQueryRep[$i] = addslashes(htmlentities($BackUpQueryRep[$i]));
                          }
                          //Und daraufhin Ausgabe:
                          print "INSERT INTO `berichte` VALUES ($BackUpQueryRep[0], $BackUpQueryRep[1], $BackUpQueryRep[2], '$BackUpQueryRep[3]', '$BackUpQueryRep[4]',  '$BackUpQueryRep[5]', '$BackUpQueryRep[6]', '$BackUpQueryRep[7]', '$BackUpQueryRep[8]', '$BackUpQueryRep[9]', '$BackUpQueryRep[10]', '$BackUpQueryRep[11]', '$BackUpQueryRep[12]', '$BackUpQueryRep[13]', '$BackUpQueryRep[14]', '$BackUpQueryRep[15]', '$BackUpQueryRep[16]', '$BackUpQueryRep[17]', '$BackUpQueryRep[18]', $BackUpQueryRep[19], $BackUpQueryRep[20]);\n";
                          }
                          ?>
                          $BackUpQueryRep[$i] enthält einen String mit \n. Gebe ich den String nun mit diesem Script aus, ist trotz addslashes() aus de, \n eien neue Zeile geworden.

                          Kommentar


                          • #14
                            Muss soviel irrelevanter Code sein?

                            phpmyadmin läuft genauso über php, wie mein script auch. Nun schau dur mal genau deren Ausgabe an. Da findet sich das \n, weil es nicht zu einer neuen Zeile umgewandelt wurde.
                            Das wage ich zu bezweifeln. Ich habe leider kein Testsystem hier und
                            deshalb bringen Spekulationen nichts. Ich schau mir das heute Abend oder
                            morgen Abend aber mal an.

                            Kommentar


                            • #15
                              Möchtest Du Dir nicht vielleicht doch noch einmal meinen ersten Post ansehen!?

                              Kommentar

                              Lädt...
                              X