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);
任何人都知道如何解决这个问题?
答案 0 :(得分:88)
您需要将\n
放在双引号中。
在单引号内,它被视为2个字符'\'
,后跟'n'
你需要:
$str = str_replace("\n", '', $str);
更好的选择是使用PHP_EOL
作为:
$str = str_replace(PHP_EOL, '', $str);
答案 1 :(得分:17)
您必须在\n
中包裹\r
或""
,而不是''
。使用单引号时,不会解释转义序列(\'
和\\
除外)。
如果字符串用双引号(“)括起来,PHP将解释 更多特殊字符的转义序列:
\ n 换行符(ASCII或0x或0x0A(10))
\ r 回车(ASCII或CR中的CR或0x0D(13))\
(...)
答案 2 :(得分:8)
功能更强大(易于在任何地方使用):
function replace_carriage_return($replace, $string)
{
return str_replace(array("\n\r", "\n", "\r"), $replace, $string);
}
使用 PHP_EOL 作为搜索替换参数也是一个好主意!奖励。
答案 3 :(得分:4)
这应该像
str_replace("\n", '', $str); str_replace("\r", '', $str); str_replace("\r\n", '', $str);
答案 4 :(得分:4)
要从字符串中删除新行,请按照以下代码
$newstring = preg_replace("/[\n\r]/","",$subject);
答案 5 :(得分:1)
正确输出:
'{"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'
)
);
}
答案 6 :(得分:0)
$no_newlines = str_replace("\r", '', str_replace("\n", '', $str_with_newlines));
答案 7 :(得分:0)
替换字符串:
$str = str_replace("\n", '', $str);
你使用也喜欢,
(%N,
%T,
所有特殊字符,数字,字符,。等)
表示你可以在字符串中替换任何东西。
答案 8 :(得分:0)
您可以将字符串数组传递给str_replace
,因此您可以在单个语句中完成所有操作:
$content = str_replace(["\r\n", "\n", "\r"], "", $content);
答案 9 :(得分:0)
$str = "Hello World!\n\n";
echo chop($str);
output : Hello World!