我为用户设置了一个系统,可以将他们的文章提交到我的数据库中。因为它只是 HTML,我不希望他们知道<br />
每次有换行符时都要输入,所以我nl2br()
在输入上使用 PHP 函数。
我还提供了一个文章修改工具,它将把他们的文章带回表单(但是这是一个不同的页面)并允许他们编辑它。在这样做时,<br />
元素也出现了(仍然有换行符)。为了纠正
出现的元素(无论如何我已经预料到了),我添加preg_replace('/<br(\s+)?\/?>/i', "\n", mysql_result($result,$i,"content"))
了我在本网站的另一个问题中找到的元素。它完成了删除<br />
元素的工作,但是由于它用换行符替换它们,并且换行符本来会保留,每次编辑帖子时,都会添加越来越多的换行符,每个段落的间距越来越大时间。这是用户无法理解的。
例如,假设我在文章提交表单中输入以下内容:
Hello, this is my article.
I am demonstrating a new line here.
这将转换为:
Hello, this is my article.<br />
I am demonstrating a new line here.
请注意,即使换行符已转换,文本中仍然存在换行符。在编辑表单中,<br />
将转换回换行符,如下所示:
Hello, this is my article.
I am demonstrating a new line here.
因为<br />
已转换为换行符,但已经有换行符。所以我想我期待的是它最初被转换成这样的东西:
Hello, this is my article.<br />I am demonstrating a new line here.
我想知道......有没有办法阻止该nl2br()
功能维护原始换行符?可能与Windows\r\n
角色有关吗?