Php変数には次の文字列が含まれます。
<p>text</p>
<p>text2</p>
<ul>
<li>item1</li>
<li>item2</li>
</ul>
この文字列の改行文字をすべて削除して、文字列が次のようになるようにします。
<p>text</p><p>text2><ul><li>item1</li><li>item2</li></ul>
私は成功せずに次のことを試しました:
str_replace('\n', '', $str);
str_replace('\r', '', $str);
str_replace('\r\n\', '', $str);
誰でもこれを修正する方法を知っていますか?
\n
を二重引用符で囲む必要があります。
一重引用符内では、'\'
の後に'n'
が続く2文字として扱われます
必要なもの:
$str = str_replace("\n", '', $str);
より良い代替方法は、PHP_EOL
を次のように使用することです。
$str = str_replace(PHP_EOL, '', $str);
\n
ではなく、\r
で""
または''
をラップする必要があります。単一引用符を使用する場合、エスケープシーケンスは解釈されません(\'
および\\
を除く)。
マニュアルの状態 :
文字列が二重引用符( ")で囲まれている場合、PHPは、特殊文字のエスケープシーケンスをさらに解釈します。
\ nラインフィード(LFまたはASCIIの0x0A(10))
\ rキャリッジリターン(ASCIIのCRまたは0x0D(13))\
(...)
もう少し機能的なもの(どこでも使いやすい):
function replace_carriage_return($replace, $string)
{
return str_replace(array("\n\r", "\n", "\r"), $replace, $string);
}
検索置換パラメータとしてPHP_EOLを使用することもお勧めです。称賛。
これは
str_replace( "\ n"、 ''、$ str); str_replace( "\ r"、 ''、$ str); str_replace( "\ r\n "、 ''、$ str);
文字列から新しい行を削除するには、以下のコードに従ってください
$newstring = preg_replace("/[\n\r]/","",$subject);
正しい出力:
'{"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'
)
);
}
$no_newlines = str_replace("\r", '', str_replace("\n", '', $str_with_newlines));
文字列を置換する:
$str = str_replace("\n", '', $str);
uも同様に使用します(%n、%t、すべての特殊文字、数字、文字など)
これは、uが文字列で置き換えることができるものを意味します。