我有一個表格,其中<textarea>
,我想在服務器端捕獲該textarea中的換行符,並用<br/>
替換它們。捕獲textarea中的換行符(換行符,換行符)
這可能嗎?
我試着在textarea
的CSS上設置white-space:pre
,但它還不夠。
我有一個表格,其中<textarea>
,我想在服務器端捕獲該textarea中的換行符,並用<br/>
替換它們。捕獲textarea中的換行符(換行符,換行符)
這可能嗎?
我試着在textarea
的CSS上設置white-space:pre
,但它還不夠。
看看nl2br()
函數。它應該做到你想要的。
的nl2br()
功能的存在是爲了做到這一點:
但是,此功能增加了BR標籤,但實際上並沒有刪除新線 - 這通常不是一個問題,但如果你想徹底剝奪他們趕上回車以及,你應該使用str_replace
或preg_replace
我認爲str_replace會稍快,但我沒有基準;
$val = str_replace(array("\n","\r","\r\n"), '<br />', $val);
或
$val = preg_replace("#\n|\r|\r\n#", '<br />', $val);
如果你打算使用str_replace
或preg_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);
對於那些想要一個答案,不依賴於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('|', ' ', $r['db_field_name']);