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'
您需要:
$str = str_replace("\n", '', $str);
更好的选择是使用
PHP_EOL
作为:
$str = str_replace(PHP_EOL, '', $str);
您必须将
\n
或 \r
包裹在 ""
中,而不是 ''
。使用单引号时,不会解释转义序列(\'
和 \\
除外)。
手册指出:
如果字符串用双引号 (") 括起来,PHP 将解释为 更多特殊字符的转义序列:
换行(LF 或 ASCII 中的 0x0A (10))
回车(CR 或 ASCII 中的 0x0D (13))\
(...)
更实用的东西(易于在任何地方使用):
function replace_carriage_return($replace, $string)
{
return str_replace(array("\n\r", "\n", "\r"), $replace, $string);
}
使用 PHP_EOL 作为搜索替换参数也是一个好主意!荣誉。
要从字符串中删除新行,请按照以下代码操作
$newstring = preg_replace("/[\n\r]/","",$subject);
这应该是这样的
str_替换(“ ", '', $str); 字符串替换(“ ", '', $str); 字符串替换(“ ", '', $str);
您可以将字符串数组传递给
str_replace
,这样您就可以在一条语句中完成所有操作:
$content = str_replace(["\r\n", "\n", "\r"], "", $content);
正确输出:
'{"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);
你也喜欢使用, (%n, %t, 所有特殊字符、数字、字符、。等)
这意味着你可以在字符串中替换任何东西。
$str = "Hello World!\n\n";
echo chop($str);
output : Hello World!