2008-11-14 158 views

回答

34

看看nl2br()函數。它應該做到你想要的。

9

nl2br()功能的存在是爲了做到這一點:

但是,此功能增加了BR標籤,但實際上並沒有刪除新線 - 這通常不是一個問題,但如果你想徹底剝奪他們趕上回車以及,你應該使用str_replacepreg_replace

我認爲str_replace會稍快,但我沒有基準;

$val = str_replace(array("\n","\r","\r\n"), '<br />', $val); 

$val = preg_replace("#\n|\r|\r\n#", '<br />', $val); 
5

如果你打算使用str_replacepreg_replace,你應該放置"\r\n"在數組的開頭,否則\r\n序列將被翻譯成兩個<br/>標籤(因爲\r將匹配,然後\n將匹配)。

如:

$val = str_replace(array("\r\n", "\n","\r"), '<br />', $val); 

$val = preg_replace("#\r\n|\n|\r#", '<br />', $val); 
0

對於那些想要一個答案,不依賴於nl2br()

$newList = ereg_replace("\n",'|', $_POST['theTextareaContents']); 

或(在這種情況下):

$newList = ereg_replace("\n",'<br/>', $_POST['theTextareaContents']); 

PHP端:從多行文本字符串PHP字符串

$newList = ereg_replace("\n",'|', $_POST['theTextareaContents']); 

PHP端:PHP串迴文本區的字符串:

$list = str_replace('|', '&#13;&#10;', $r['db_field_name']);