我有一个textarea
字段,我允许用户输入纯文本或HTML。PHP替换双重换行符<br>
我用干净的HTMLPurify HTML,但我想添加一个功能,帮助用户谁不知道HTML(因此使用纯文本):转换双换行符(\n\n
,\r\r
,\n\r
,\r\n
)成一个<br>
。如果有2对双换行符,把它变成2个<br>
S等
基本上是:
Hi, this is some text with a SINGLE linebreak after it.
Here's some more text.
This is some text following a double line break.
会变成这样:
Hi, this is some text with a SINGLE linebreak after it.Here's some more text.
This is some text following a double line break.
使用nl2br()
造成这样的问题:它使用HTML制作比较困难,例如..
<ul>
<li>List item</li>
<li>List item</li>
<li>List item</li>
</ul>
转了编成
<ul>
<li>List item</li>
<li>List item</li>
<li>List item</li>
</ul>
这导致了当不应该有额外的项目符号点。
我已经更新了我对为什么nl2br不会为我工作信息的问题。我也尝试过使用preg_replace,它用
替换了任意数量的连续换行符(因此3,4,5,6换行符将全部替换为单个
) – fruitcup 2012-03-31 00:40:42
是否有可能检测用户何时使用HTML与纯文本?你有没有想过使用像ckEditor或TinyMce这样的RTE小部件? http://ckeditor.com/ – 2012-03-31 00:46:58
嗯,我想我可以有一个复选框启用“HTML模式”或什么.. – fruitcup 2012-03-31 00:49:46