Wie ersetzen newline oder \r\n mit <br/>?
Versuchen, ersetzen Sie einfach einige neue Linien. Habe versucht, 3 verschiedene Wege und ich bekomme keine änderung:
$description = preg_replace('/\r?\n|\r/','<br/>', $description);
$description = str_replace(array("\r\n","\r","\n"),"<br/>", $description);
$description = nl2br($description);
Sollten diese alle funktionieren, aber ich bekomme immer noch die Zeilenumbrüche. Sie sind doppelt: "\r\r". Das sollte nicht machen diesen Recht Versagen?
- Warum haben Sie die nackten
\r
Zeilenumbrüche? AFAIK sogar MacOSX umgestiegen\n
. - Sie kommen von einem Kunden-CSV.
- möglich, Duplikat der so entfernen Sie Zeilenumbrüche (keine Zeichen!) aus dem string?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist schon
nl2br()
Funktionersetztfügt<br>
tags, bevor Sie neue-Zeile-Zeichen:Beispiel (codepad):
Aber wenn es immer noch nicht funktioniert, stellen Sie sicher, dass der text
$desciption
ist in doppelte Anführungszeichen.Das ist, weil die einzelnen Zitate nicht 'erweitern' - escape-Sequenzen wie
\n
im Vergleich zu double quoted strings. Zitat aus der PHP-Dokumentation:nl2br
und, dass es nicht funktioniert.nl2br
hat NICHT ERSETZT sondern EINLEGESOHLEN, bevor Sie Zeilenumbrüche, die BLÄTTER der nl-Zeichen und FÜGT br vor Ihnen.Versuchen Sie es mit dieser
$description = str_replace(["\r\n", "\r", "\n"], "<br/>", $description)
entnommen aus die Antwort/\R/
für alle CR/LF linebreak-Kombinationen.)Können Sie echte Zeichen wie "\" im string (die einfachen Anführungszeichen Zeichenfolgen, wie gesagt, @Robik).
Wenn du ganz sicher, dass das '\r' oder '\n' strings ersetzt werden sollten, als auch, ich Rede nicht von besonderen Zeichen, die hier aber eine Folge von zwei Zeichen '\' und 'r', dann escape '\' in den ersetzen-string und es funktioniert:
nl2br()
wie Sie es sollte funktionieren:Ist es wahrscheinlicher, dass die unverschlossenen
'
auf die erste Zeile von deinem Beispiel-code verursacht das Problem. Entfernen Sie die ' nach $Beschreibung...nl2br() für mich gearbeitet, aber ich musste wrap Variablen mit doppelten Anführungszeichen:
Dies funktioniert:
Dies nicht funktioniert:
Dieser Arbeit wird für Sie sicher:
Versuchen Sie dies:
'\r\n'
ist nicht das gleiche wie"\r\n"
."\r\n"
Recht ?Ich denke, str_replace(array("\r\n", "\r", "\n"), " ", $Zeichenkette); funktioniert.
Wenn Sie
nl2br
alle vorkommen von\n
und\r
wird ersetzt durch<br>
. Aber wenn (ich weiß nicht, wie es ist) Sie bekommen immer noch neue Linien, die Sie verwenden können,Zu replase unnötig neue Linien durch die leere Zeichenfolge
\r
imstr_replace
scheint, alles zu ersetzen. Und außerdem, man sollte es ersetzen durch<br>
...