Fabian Transchel: \n-Zeilenumbrüche aus string rauswerfen

Hallo Leute,
ich bin beim Programmieren eines Forums auf folgendes Problem gestoßen:
Ich bekomme einen String $text per POST zugeschickt, den ich dann weiterverwenden möchte, die anderen stings wie $name, $mail und so, die für ein forum ausserdem notwendig sind, sind ja alle einzeilig.
Also ich verwende dann die funktion nl2br();
um die \n in <br> unzuwandeln, aber der string  enthält nach der operation beides, etwa so: text\n<br />nochmaltext\n<br />nochnbisschentext
wie bekomme ich die \n daraus ???

könnte das an meiner PHP-konfiguration liegen?

Thx im Vorraus,
Fabian

  1. Hallo,

    Ich bekomme einen String $text per POST zugeschickt, den ich dann weiterverwenden möchte, die anderen stings wie $name, $mail und so, die für ein forum ausserdem notwendig sind, sind ja alle einzeilig.
    Also ich verwende dann die funktion nl2br();
    um die \n in <br> unzuwandeln, aber der string  enthält nach der operation beides, etwa so: text\n<br />nochmaltext\n<br />nochnbisschentext
    wie bekomme ich die \n daraus ???

    Alternative:
    $text=str_replace("\n","<br>",$text);

    MfG, Thomas

  2. Hallo Fabian,
    nl2br() ist nicht ganz perfekt und bereitet ab und zu etwas Probleme (glaube auch bei anderen Plattformen. Nutze lieber:

    $value = preg_replace('!\015\012|\015|\012!','<br />',$value);

    Grüße aus Würzburg
    Julian

  3. Hallo, Fabian,

    Also ich verwende dann die funktion nl2br();
    um die \n in <br> unzuwandeln, aber der string
    enthält nach der operation beides, etwa so:
    text\n<br />nochmaltext\n<br />nochnbisschentext
    wie bekomme ich die \n daraus ???

    So ganz verstehe ich das nicht, aber vielleicht hängt es irgendwie damit zusammen, daß die verschiedenen Betriebssysteme unterschiedliche Zeichen oder Zeichenkombinationen für einen Zeilenumbruch benutzen:

    Macintosh:  \r
    Unix     :  \n
    Windows  :  \r\n

    Schau doch auch mal bei den Nutzerkommentaren zu nl2br auf php.net:
    http://www.php.net/manual/en/function.nl2br.php

    Falls Du dort keine Lösung findest, versuchst Du es vielleicht einmal mit Regulären Ausdrücken zum Suchen und Ersetzen:
    http://www.php.net/manual/en/function.preg-replace.php

    Grüße,

    Sebastian