我有一个带有 a 的表单,<textarea>
我想在服务器端的该文本区域中捕获任何换行符,并将它们替换为<br/>
.
那可能吗?
我尝试white-space:pre
在textarea
's CSS 上进行设置,但仍然不够。
我有一个带有 a 的表单,<textarea>
我想在服务器端的该文本区域中捕获任何换行符,并将它们替换为<br/>
.
那可能吗?
我尝试white-space:pre
在textarea
's CSS 上进行设置,但仍然不够。
看看nl2br()
功能。它应该完全符合您的要求。
该nl2br()
功能的存在就是为了做到这一点:
然而,这个函数添加了 br 标签,但实际上并没有删除新行——这通常不是问题,但如果你想完全去除它们并捕获回车,你应该使用 astr_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
or preg_replace
,您可能应该将 the"\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 端:从 Textarea 字符串到 PHP 字符串
$newList = ereg_replace( "\n",'|', $_POST['theTextareaContents']);
PHP 端: PHP 字符串返回到 TextArea 字符串:
$list = str_replace('|', ' ', $r['db_field_name']);