html字符串中的间距问题

时间:2012-02-20 19:48:06

标签: php

在我的网站上,我有一个包含公告的部分,现在我正在使用一个工具,允许版主编辑或发布新的公告。 当主持人发布公告时,他有一个表格,其中包含标题的输入和文章内容的文本框。我在包含文章内容的变量中使用nl2br()函数(在所有换行符之前插入HTML换行符)。 因此,当我在数据库中插入一篇文章时,它将如下所示:

First row ...<br />Second row.<br /><br />Regards,<br />Moderators team

当主持人想要编辑文章时,我有一个包含文章的文本框:

<textarea name="body" maxlength="1000" cols="105" rows="10"><?php echo str_replace('<br />', "\n", $content); ?></textarea>

如果主持人点击保存按钮(不进行任何修改),文章会变成这样的(标签数量增加一倍):

First row ...<br /><br />Second row.<br /><br /><br /><br />Regards,<br /><br />Moderators team

任何人都可以帮我解决这个问题。

3 个答案:

答案 0 :(得分:1)

问题是nl2br: 在字符串中的所有换行符之前插入HTML换行符 http://www.php.net/manual/en/function.nl2br.php

所以在nl2br之后你会有两个换行符和<br /> - 标记

尝试使用$content = preg_replace("~\r?\n~", "<br />", $content);代替换行符。

答案 1 :(得分:0)

保存到数据库时,请勿转换新行。如果您只是在动态显示HTML页面时转换它们,那么当您回显到textarea时,则不需要将它们转换回来。

答案 2 :(得分:0)

保存到数据库时不要替换换行符。