hansatwebde: Zeilenumbruch entfernen funktioniert nicht

Hallo,

Ich habe versucht mittels dem ereg_replace Befehl den Zeilenumbruch in einer Variable zu löschen. Zwar wird am der stelle, wo der Zeilenumbruch ist die ersetzte Zeichenfolge angezeigt, aber die Zeilen stehen immer noch untereinander.
Gibt es da eine Möglichkeit den auch zu ersetzen?

Mfg hansatwebde

  1. Hallo,

    Ich habe versucht mittels dem ereg_replace Befehl den Zeilenumbruch in einer Variable zu löschen.

    wie hast Du es versucht (zeige bitte den Quellcode)?
    Warum nutzt Du nicht str_replace()?

    Gruß aus Berlin!
    eddi

    1. Hallo,

      also der Quelltext ist $var=ereg_replace("\n", " ", $na);

      Mein Browser zeigt im Quelltext die Zeichen   an aber die Zeilen stehen halt noch untereinander.
      Ich habe den Text aus einer Sql Datenbank und habe ihn mit fetch_assoc ausgelesen.

      1. Hello,

        also der Quelltext ist $var=ereg_replace("\n", " ", $na);

        Mein Browser zeigt im Quelltext die Zeichen   an aber die Zeilen stehen halt noch untereinander.
        Ich habe den Text aus einer Sql Datenbank und habe ihn mit fetch_assoc ausgelesen.

        Wenn der Browser "normal" ist, ergänzt er automatisch die brutal verstümmelten Zeilenumbrüche wieder...

        "\n" wird zu "\r\n"
        "\r" wird zu "\r\n"

        "\r\n" bleibt "\r\n"

        Also bitte mal im Hexeditor anschauen, was da passiert ist.

        Harzliche Grüße vom Berg
        http://www.annerschbarrich.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau

        1. Hallo,

          Ja das \r\n wars!

          Vielen dank!!!

          Mfg hansatwebde

      2. Re:

        also der Quelltext ist $var=ereg_replace("\n", " ", $na);

        Die Funktionen *_replace() haben einen eingbauten Automatismus search "\n" nicht zu verarbeiten, wenn direkt davor ein "\r" steht. Dein Code müßte also lauten:
        $var=str_replace("\r\n"," ",$na);

        Gruß aus Berlin!
        eddi

        1. hi,

          Die Funktionen *_replace() haben einen eingbauten Automatismus search "\n" nicht zu verarbeiten, wenn direkt davor ein "\r" steht.

          Wie kommst du darauf?

          Folgender Code zeigt, dass das nicht stimmt:

          $test = "a\r\nb";  
            
          for($i=0, $l=strlen($test); $i<$l; $i++) {  
           echo ord($test{$i})."-";  
          }  
          echo "<br />\n";  
            
          $test = str_replace("\n", "", $test);  
            
          for($i=0, $l=strlen($test); $i<$l; $i++) {  
           echo ord($test{$i})."-";  
          }
          

          Ich würde da auch eher Toms Vermutung teilen, dass der Browser "verkrüppelte" Zeilenumbrüche - wo also von einem \r\n nach der Ersetzung nur noch \r übrig geblieben ist - trotzdem interpretiert, bzw. ggf. ergänzt.

          gruß,
          wahsaga

          --
          /voodoo.css:
          #GeorgeWBush { position:absolute; bottom:-6ft; }
          1. Hallo,

            Wie kommst du darauf?

            läßt sich jetzt bei mir auch nicht mehr nachvollziehen. Allerdings hatte ich genau das Problem vor zwei Wochen, um es zu lösen habe ich auch in die Sourcen schauen müssen...
            Nur welches pre-released (5.1.3/6.0-dev) es war, weiß ich nicht. Also ist das...

            Die Funktionen *_replace() haben einen eingbauten Automatismus search "\n" nicht zu verarbeiten, wenn direkt davor ein "\r" steht.

            ...Schwachsinn^3

            Gruß aus Berlin!
            eddi

  2. Hello,

    Ich habe versucht mittels dem ereg_replace Befehl den Zeilenumbruch in einer Variable zu löschen.

    Wie hast Du das genau gemacht?

    Zwar wird am der stelle, wo der Zeilenumbruch ist die ersetzte Zeichenfolge angezeigt, aber die Zeilen stehen immer noch untereinander.

    Wer zeigt das an?

    Gibt es da eine Möglichkeit den auch zu ersetzen?

    Was wurde denn genau ersetzt und wie hast Du das an welcher Stelle des Datenflusses überprüft?

    Ich nehme an, dass Du etwas (Unvollständiges) veranlasst hast, was an anderer Stelle (Browser) automoatisch wiederhergestellt wurde. Aber das ist Kugelismus :-)

    Harzliche Grüße vom Berg
    http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau