thorsten: str_replace() auch für Zeilenumbrüche?

hallo zusammen!

mit str_replace("\n","",$content);
versuche ich im String $content alle zeilenumbrüche zu entfernen. klappt aber nicht, wieso?

thorsten

  1. mit str_replace("\n","",$content);
    versuche ich im String $content alle zeilenumbrüche zu entfernen. klappt aber nicht, wieso?

    Wo kommen denn die Zeilenumbrüche her?

    \n ist nicht die einzige codierung dafür.

    Probier mal damit:
    str_replace("/\r?\n|\r/","", $buffer);
    ( ungetestet )

    1. Wo kommen denn die Zeilenumbrüche her?

      der string enthällt text der aus einer datenbankstammt. dieser wurde über einen ifram der im designmode ist eingetippt. (der inhlat des iframes lässt sich durch designmode verändern, schätze mal kannste mit textarea aus htmlformular vergleichen)»»

      Probier mal damit:
      str_replace("/\r?\n|\r/","", $buffer);

      funzt nicht!

      thorsten

      1. str_replace("\r\n","", $buffer);

        das funzt! thx!!!

        also eins noch:

        wollte " in " und ' in ' \ in \ etc. umwandeln. allerdings nicht mit str_replace() gibt doch sone funktion die alle relervanten zeichen mit einem backslash voran austausch.. wie heißt diese??

        vielen dank für erue hilfe!

        1. Moin thorsten,

          wollte " in " und ' in ' \ in \ etc. umwandeln. allerdings nicht mit str_replace() gibt doch sone funktion die alle relervanten

          zeichen mit einem backslash voran austausch.. wie heißt diese??

          hilft vielleicht das. http://de3.php.net/manual/de/function.stripcslashes.php

          Grüsse
          Mike

          --
          Freunde kommen und gehen. Feinde sammeln sich an.
    2. Moin thorsten,

      Probier mal damit:
      str_replace("/\r?\n|\r/","", $buffer);
      ( ungetestet )

      was Transmitter damit sagen wollte, es kommt darauf an, unter welchem OS der Server läuft, bzw in welchem Format die Datei erstellt wurde.

      Für Unix/Linux reicht durchaus replace \n
      aber für Windoof DOS Format brauchst Du:

      $buffer=str_replace("\r\n","", $buffer);

      Unix/Linux macht nur (CR) aber Windoof(DOS) macht (CR & LF)

      Grüsse
      Mike

      --
      Freunde kommen und gehen. Feinde sammeln sich an.
  2. Hello,

    mit str_replace("\n","",$content);

    Wenn, dann musst Du alle drei Möglichkeiten austauschen:

    $_linebreaks = array("\r\n","\r","\n");

    str_replace($_linebreaks,"",$content);

    http://de3.php.net/manual/en/function.str-replace.php

    Die meisten Clients ergänzen die Zeilenumbrüche immer wieder zu "\r\n", auch wenn sie auf einem MAC oder einer Linux-Plattform laufen. Die auf WinDOSen tun es auf jeden Fall.

    Wenn da also ein einzelnes "\r" rumgesitert, und Du jagst den Text durch eine Textarea (zur Editierung) ist hinterher der vollständige Linebreak "\r\n" wieder da.

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

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau
  3. Hallo,

    mit str_replace("\n","",$content);
    versuche ich im String $content alle zeilenumbrüche zu entfernen. klappt aber nicht, wieso?

    Als Ergaenzung zu den anderen Antworten:

    rtrim() [bzw. der Alias chop()] bietet sich an. Es werden ohne zweiten Parameter vor allem Leerzeichen, \n, \r, \t am Stringende entfernt.

    MfG, Thomas