47 Stimmen

Wie entferne ich Zeilenumbrüche und Zeilenumbrüche aus einem PHP-String?

Ein PHP-Variable enthält den folgenden String:

text
text2

item1
item2

Ich möchte alle Zeilenumbruchszeichen in diesem String entfernen, so dass der String wie folgt aussieht:

texttext2>item1item2

Ich habe Folgendes ohne Erfolg versucht:

str_replace('\n', '', $str);
str_replace('\r', '', $str);
str_replace('\r\n\', '', $str);

Weiß jemand, wie man das beheben kann?

0 Stimmen

Du könntest s($str)->normalizeLineEndings('') hilfreich finden, wie es in dieser eigenständigen Bibliothek zu finden ist. Es entfernt alle Arten von Zeilenumbrüchen, einschließlich Unicode-Zeichen.

2 Stimmen

Verwenden Sie einfach " anstelle von '.

112voto

codaddict Punkte 426877

Sie müssen das \n in doppelte Anführungszeichen setzen.
Innerhalb einfacher Anführungszeichen wird es als 2 Zeichen '\' gefolgt von 'n' behandelt

Sie benötigen:

$str = str_replace("\n", '', $str);

Ein bessere Alternative ist, PHP_EOL zu verwenden:

$str = str_replace(PHP_EOL, '', $str);

21voto

kapa Punkte 75108

Sie müssen \n oder \r in "" einschließen, nicht in ''. Wenn einzelne Anführungszeichen verwendet werden, werden Escape-Sequenzen nicht interpretiert (außer \' und \\).

Im Handbuch wird angegeben:

Wenn der String in doppelten Anführungszeichen (") eingeschlossen ist, interpretiert PHP mehr Escape-Sequenzen für Sonderzeichen:

  • \n Zeilenumbruch (LF oder 0x0A (10) in ASCII)

  • \r Wagenrücklauf (CR oder 0x0D (13) in ASCII)

  • (...)

13voto

tfont Punkte 10180

Etwas funktionaleres (überall einfach zu verwenden):

function replace_carriage_return($ersetzen, $string)
{
    return str_replace(array("\n\r", "\n", "\r"), $ersetzen, $string);
}

Die Verwendung von PHP_EOL als Suchersetzung ist auch eine gute Idee! Anerkennung.

7voto

saravanavelu Punkte 454

Um Zeilenumbrüche aus einem String zu entfernen, befolgen Sie den folgenden Code

$neuerString = preg_replace("/[\n\r]/","",$subject);

6voto

Asif Mulla Punkte 1632

Dies sollte so sein

str\_replace("\\n", '', $str);
str\_replace("\\r", '', $str);
str\_replace("\\r\\n", '', $str);

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X