wake-up-neo.com

wie entferne ich neue Zeilen und kehrt aus PHP-String

Eine PHP-Variable enthält die folgende Zeichenfolge:

<p>text</p>
<p>text2</p>
<ul>
<li>item1</li>
<li>item2</li>
</ul>

Ich möchte alle neuen Zeilenzeichen in dieser Zeichenfolge entfernen, damit die Zeichenfolge folgendermaßen aussieht:

<p>text</p><p>text2><ul><li>item1</li><li>item2</li></ul>

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?

35
Yens

Sie müssen den \n in doppelte Anführungszeichen setzen.
In einfachen Anführungszeichen werden zwei Zeichen '\' gefolgt von 'n' behandelt.

Du brauchst:

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

Eine bessere Alternative ist die Verwendung von PHP_EOL als:

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

Sie müssen \n oder \r in "" einschließen, nicht ''. Bei der Verwendung von einfachen Anführungszeichen werden Escape-Sequenzen nicht interpretiert (außer \' und \\).

Das Handbuch sagt :

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

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

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

  • (...)

15
kapa

Etwas funktionaler (einfach überall einsetzbar):

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

Die Verwendung von PHP_EOL als Parameter für die Suchersetzung ist ebenfalls eine gute Idee! Kudos.

7
tfont

Das sollte so sein

 str_replace ("\ n", '', $ str); 
 str_replace ("\ r", '', $ str); 
 str_replace ("\ r\n", '', $ str); 
4
Asif Mulla

Folgen Sie dem nachstehenden Code, um neue Zeilen aus der Zeichenfolge zu entfernen

$newstring = preg_replace("/[\n\r]/","",$subject); 
4
saravanavelu

Richtige Ausgabe:

'{"data":[{"id":"1","reason":"hello\\nworld"},{"id":"2","reason":"it\\nworks"}]}'

function json_entities( $data = null )
{           
    //stripslashes
    return str_replace( '\n',"\\"."\\n",
        htmlentities(
            utf8_encode( json_encode( $data)  ) , 
            ENT_QUOTES | ENT_IGNORE, 'UTF-8' 
        )
    );
}
1
Jonathan
$no_newlines = str_replace("\r", '', str_replace("\n", '', $str_with_newlines));
0
Collin Anderson

Ersetzen Sie eine Zeichenfolge:

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

u auch wie (% n, % t, Alle Sonderzeichen, Zahlen, Zeichen usw.)

was bedeutet, dass alles, was Sie in einem String ersetzen können.

0
Alagu Sundar