我有一个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>
导致在不存在时会有额外的子弹点。
答案 0 :(得分:1)
nl2br适合你吗? http://php.net/manual/en/function.nl2br.php
答案 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