2010-01-02 53 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); 
} 
相關問題