捕获textarea中的换行符(换行符,换行符)

时间:2008-11-14 03:29:36

标签: php html textarea line-breaks

我有一个带有<textarea>的表单,我希望在服务器端捕获该textarea中的任何换行符,并将其替换为<br/>

这可能吗?

我尝试在white-space:pre的CSS上设置textarea,但这还不够。

4 个答案:

答案 0 :(得分:34)

查看nl2br()功能。它应该完全符合您的要求。

答案 1 :(得分:9)

nl2br()函数存在这样做:

但是,这个函数添加了br标签,但实际上并没有删除新行 - 这通常不是问题,但是如果你想完全剥离它们并捕获回车符,你应该使用{{3} }或str_replace

我认为str_replace会稍微快些但我没有基准测试;

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

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

答案 2 :(得分: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 );

答案 3 :(得分:0)

对于那些想要不依赖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('|', '&#13;&#10;', $r['db_field_name']);