捕获textarea中的换行符(换行符,换行符)
-
08-07-2019 - |
题
我有一个带有<textarea>
的表单,我想在服务器端捕获该textarea中的任何换行符,并用<br/>
替换它们。
这可能吗?
我尝试在white-space:pre
的CSS上设置textarea
,但这还不够。
解决方案
查看 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方面:从Textarea字符串到PHP字符串
$list = str_replace('|', ' ', $r['db_field_name']);
PHP方面:PHP字符串返回TextArea字符串:
<*>不隶属于 StackOverflow