2010-09-06 95 views
2

我正在使用str_replace,它無法正常工作。 我有一個文本區域,其輸入與表單一起發送。當服務器收到數據時,我想將新行更改爲「,」。PHP str_replace不能正常工作

$teams = $_GET["teams"]; 
$teams = str_replace("\n",",",$teams); 
echo $teams; 

奇怪的是,我收到以下結果

切爾西

,真正

,巴塞羅那

,而不是Chealsea,真實的,巴塞羅那。

怎麼了?

回答

8

要擴大Waage的迴應,你可以使用數組來代替這兩個字符集

$teams = str_replace(array("\r\n", "\n"),",",$teams); 
echo $teams; 

這應該妥善處理好這兩個項目,作爲一個單一的\n的是有效的,不會被抓到如果你只是更換\r\n

+0

'TRIM()'只從字符串的開頭和結尾刪除空格字符,而不是在中間。 – BoltClock 2010-09-06 23:50:44

+0

是的,它在我看來,他不是這樣做到字符串的末尾:)修改是一個更好的迴應! – 2010-09-06 23:52:20

+0

現在有點迷路了,這兩個答案有什麼區別? – 2010-09-06 23:55:55

4

嘗試更換"\r\n",而不是僅僅"\n"

3

我會修剪文本並用co替換所有連續的CR/LF字符mma:

$text = preg_replace('/[\r\n]+/', ',', trim($text)) 
0

我有同樣的問題,但發現不同的答案,所以認爲我會分享,以防它可以幫助某人。

我遇到的問題是我想用<br/>代替\n用HTML打印。簡單的變化,我不得不做是爲了躲避反斜線str_replace("\n","<br>",($text))這樣的:

str_replace("\\n","<br>",($text))