2011-05-30 76 views
3

PHP代碼如何替換 r n的textarea的

<?php 
$content = "check1\r\ncheck2\r\ncheck3\r\nend..." 
$order = array("\r\n"); 
$replace = "\n"; 
$content= str_replace($order, $replace, $content); 
$smarty->assign('content', $content); 
?> 

查看頁面(一個智者模板)

<textarea>{$content}<textarea> 

輸出:

check1\r\ncheck2\r\ncheck3\r\nend... 

我希望輸出像下面

check1 
check2 
check3 
end... 

裏面的textarea。我已將\r\n替換爲\n,但即使如此,我仍無法獲得所需的輸出。我的代碼有什麼問題?先謝謝你。

+0

似乎正在爲我工​​作,在第一行添加了分號:http://ideone.com/JngNo(我也添加了'!!',所以我們可以看到它做了一些事情) – Kobi 2011-05-30 09:22:35

+1

好的,這個問題完全是關於Smarty的,因爲替換顯然是有效的。得到它了。 – Kobi 2011-05-30 09:27:30

回答

6

它看起來像你有一個類似的問題this

如果我讀正確,請嘗試:

<textarea>{$content|stripcslashes}<textarea> 
+0

顯然,我無法測試它,但在http://ideone.com/jMZ4C上似乎足夠接近。下一個問題 - 爲什麼我要回答我一無所知的話題? – Kobi 2011-05-30 09:45:18

+0

哈。完全相同的網站,我剛剛找到。雖然你在'stripslashes'中有錯字 – Ben 2011-05-30 09:48:20

+0

@ben - 謝謝!儘管沒有打字錯誤,「stripslashes」並不適用於我:http://ideone.com/xv7k8,它將「a \ nb''改爲」anb''。 (再次,假設我理解正確) – Kobi 2011-05-30 09:53:28

1

這將用\n替換所有\r\n

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

我幾天前成功地使用了它,它們在文本字段中正確顯示。

3

我也不Smarty的大師,但你可能在你的模板希望這個代替:

<textarea>{$content|stripslashes}<textarea> 
0

我有同樣的問題與\r\n,但我不得不添加反斜槓到搜索參數(即\r\n變爲\\r\\n),使其工作:

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