PHP用<br/>替换双换行符

时间:2012-03-31 00:33:47

标签: php html formatting editor line-breaks

我有一个textarea字段,我允许用户输入纯文本或HTML格式。

我使用HTMLPurify清理HTML,但我想添加一项功能来帮助不懂HTML的用户(从而使用纯文本):转换双换行符\n\n,{{1} },\r\r\n\r)到\r\n。如果有两对双换行符,则将其转换为2 <br> s等

基本上:

<br>

将变成这个:

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. 导致的问题导致难以使用HTML,例如..

nl2br()

变成了

<ul>
<li>List item</li>
<li>List item</li>
<li>List item</li>
</ul>

导致在不存在时会有额外的子弹点。

4 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

它可能是HTMLPurify,而是尝试使用strip_tags()并使用nl2br(),如果这样可行,那么它肯定是导致问题的HTMLPurify。

您也可以在使用HTMLPurify之前尝试使用nl2br(),这样您就可以在HTMLPurify之前将所有\n\r转换为<br />,并尊重<br />添加的内容。

答案 2 :(得分:0)

尝试nl2br()

  

nl2br - 在字符串

中的所有换行符之前插入HTML换行符      

返回带有'&lt; br /&gt;'的字符串'或'&lt; br&gt;'在所有换行符之前插入(\ r \ n,\ n \ r \ n,\ n和\ r \ n)。

答案 3 :(得分:0)

我刚才找到了解决方案,现在我正在回答我的一个问题。 HTMLPurify有一个“自动分段”选项

AutoFormat.AutoParagraph