如何从 php 字符串中删除换行符和返回值?

问题描述 投票:0回答:11

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

有人知道如何解决这个问题吗?

php string newline
11个回答
110
投票

您需要将

\n
放在双引号中。
在单引号内,它被视为 2 个字符
'\'
后跟
'n'

您需要:

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

更好的选择是使用

PHP_EOL
作为:

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

21
投票

您必须将

\n
\r
包裹在
""
中,而不是
''
。使用单引号时,不会解释转义序列(
\'
\\
除外)。

手册指出

如果字符串用双引号 (") 括起来,PHP 将解释为 更多特殊字符的转义序列:

  • 换行(LF 或 ASCII 中的 0x0A (10))

  • 回车(CR 或 ASCII 中的 0x0D (13))\

  • (...)


13
投票

更实用的东西(易于在任何地方使用):

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

使用 PHP_EOL 作为搜索替换参数也是一个好主意!荣誉。


7
投票

要从字符串中删除新行,请按照以下代码操作

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

6
投票

这应该是这样的

str_替换(“
", '', $str);
字符串替换(“
", '', $str);
字符串替换(“
", '', $str);

3
投票

您可以将字符串数组传递给

str_replace
,这样您就可以在一条语句中完成所有操作:

$content = str_replace(["\r\n", "\n", "\r"], "", $content);

2
投票

正确输出:

'{"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
投票
$no_newlines = str_replace("\r", '', str_replace("\n", '', $str_with_newlines));

0
投票

替换字符串:

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

你也喜欢使用, (%n, %t, 所有特殊字符、数字、字符、。等)

这意味着你可以在字符串中替换任何东西。


0
投票
$str = "Hello World!\n\n";
echo chop($str);

output : Hello World!

0
投票

无论您的文件使用何种疯狂的换行序列组合,您都可以轻松使用

preg_replace()
(或
\R+
- 垂直空格)。它会找到隐藏在字符串中的任何
\v+
\r
字符。
代码:(

演示

\n

© www.soinside.com 2019 - 2024. All rights reserved.