web-dev-qa-db-ja.com

PHPの文字列から新しい行と戻り値を削除する方法は?

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);

誰でもこれを修正する方法を知っていますか?

37
Yens

\nを二重引用符で囲む必要があります。
一重引用符内では、'\'の後に'n'が続く2文字として扱われます

必要なもの:

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

より良い代替方法は、PHP_EOLを次のように使用することです。

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

\nではなく、\r""または''をラップする必要があります。単一引用符を使用する場合、エスケープシーケンスは解釈されません(\'および\\を除く)。

マニュアルの状態

文字列が二重引用符( ")で囲まれている場合、PHPは、特殊文字のエスケープシーケンスをさらに解釈します。

  • \ nラインフィード(LFまたはASCIIの0x0A(10))

  • \ rキャリッジリターン(ASCIIのCRまたは0x0D(13))\

  • (...)

18
kapa

もう少し機能的なもの(どこでも使いやすい):

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

検索置換パラメータとしてPHP_EOLを使用することもお勧めです。称賛。

8
tfont

これは

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

文字列から新しい行を削除するには、以下のコードに従ってください

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

正しい出力:

'{"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

文字列を置換する:

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

uも同様に使用します(%n、%t、すべての特殊文字、数字、文字など)

これは、uが文字列で置き換えることができるものを意味します。

0
Alagu Sundar