2010-01-02 58 views

回答

35
$string = str_replace("\n", "", $string); 
$string = str_replace("\r", "", $string); 
+1

它帮了我很多 – Rinzler 2012-04-25 10:19:08

66
$string = str_replace(PHP_EOL, '', $string); 

$string = str_replace(array("\n","\r"), '', $string); 
+3

+1因为PHP_EOL捕捉换行符是的\ n,\ r \ n,\ r错过。 – Mark 2013-01-11 06:31:31

+3

不适用于我。首先,该PHP_EOL根本不被识别。其次,如果您第一次删除\ n,然后您正在搜索\ r \ n,您将无法找到它们,因为\ n已被删除。 – MilanG 2015-04-08 14:21:12

+0

@MilanG你可以在这里找到所有预定义的PHP常量:http://php.net/manual/en/reserved.constants.php你会看到那里PHP_EOL。关于你的第二个陈述你可能是正确的,我会解决这个问题。感谢 – AntonioCS 2015-04-09 15:35:08

11

要删除几个新线将其的推荐使用正则表达式:

$my_string = trim(preg_replace('/\s\s+/', ' ', $my_string)); 
+0

+1的实际使用,如OP正则表达式问 – rorypicko 2013-11-12 10:58:03

+0

的'+'符号是指1或更多,则不需要第一个'\ s'。 – 2013-12-02 22:35:32

+0

\正则表达式组不包含标签和公共空间之类的东西,在这种情况下,这个答案严重过度贪婪? – Kzqai 2014-11-10 19:54:12

1

尝试了这一点 它的工作对我来说

先删除n从字符串(n前使用双斜杠),

然后从字符串中删除rn

CODE:

$string=str_replace("\\n",$string); 
$string=str_replace("\\r",$string); 
6

更好的使用,

$string = str_replace(array("\n","\r\n","\r"), '', $string)

因为一些换行符保留,因为它是从textarea输入。

3

一些更实用(易于在任何地方使用):

function strip_carriage_returns($string) 
{ 
    return str_replace(array("\n\r", "\n", "\r"), '', $string); 
} 
相关问题