我有一個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