【发布时间】:2010-11-26 02:46:57
【问题描述】:
我正在使用nl2br() 将\n 字符转换为<br /> 标记,但我一次不想多个<br /> 标记。例如,Hello \n\n\n\n Everybody 应变为 Hello <br /> Everybody。
我该怎么做?
【问题讨论】:
我正在使用nl2br() 将\n 字符转换为<br /> 标记,但我一次不想多个<br /> 标记。例如,Hello \n\n\n\n Everybody 应变为 Hello <br /> Everybody。
我该怎么做?
【问题讨论】:
最直接的方法可能是首先使用简单的正则表达式将多个换行符替换为一个:
nl2br(preg_replace("/\n+/", "\n", $input));
【讨论】:
\n 字符,只需将其中两个放在正则表达式中并替换:preg_replace("/\n\n+/", "\n\n", $input)
如果你有 php 5.2.4+,你可以使用 preg_replace 和垂直空白字符类型\v
$str = preg_replace('/\v+/','<br>', $str);
【讨论】:
我会先尝试使用 preg_replace() 将重复的换行符替换为单个换行符,然后使用 nl2br 转换为 HTML
标签。 nl2br(preg_replace('/\n+/', '\n', $the_string)) 应该可以解决问题(未经测试)。
【讨论】: