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

时间:2010-10-21 10:05:50

标签: php string newline

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

任何人都知道如何解决这个问题?

10 个答案:

答案 0 :(得分:88)

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

你需要:

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

更好的选择是使用PHP_EOL作为:

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

答案 1 :(得分:17)

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

The manual states

  

如果字符串用双引号(“)括起来,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!