我在管理面板中使用 ckeditor,但在用户提交表单中使用简单的文本框,以便用户可以输入文本并提交。问题是当用户使用换行符在 textarea 中输入文本时,它会在 SQL 中保存为它。我想在 sql 的每一行之后添加 BR。
例如用户提交:
![F.R.I.E.N.D.S.:
(F)ight for you.
(R)espect you.
(I)nvolve you.
(E)ncourage you.
(N)eed you.
(D)eserve you and
(S)tand by you.][1]![SCREENSHOT oF DB SAVE][2]
保存在数据库中,下一行显示在输出中。但我想在数据库中保存为:
F.R.I.E.N.D.S.:<br />
(F)ight for you.<br />
(R)espect you.<br />
(I)nvolve you.<br />
(E)ncourage you.<br />
(N)eed you.<br />
(D)eserve you and<br />
(S)tand by you.
我使用 nl2br,但它不适用于用户提交表单如果我在管理处理表单上使用 nl2br,那么在已经使用 ckeditor 添加的那些字段上,它会添加两个 BR 标签。
用户提交表单上使用的代码是:
<textarea name="content" id="content" cols="60" rows="10" class="span7"><?php if(isset($content)) { echo $content; } ?></textarea>
$content = trim($_POST["content"])
$content = mysql_real_escape_string($content);
$content = nl2br($content);
在 textarea 上使用 ckeditor 的管理员批准表单上不使用任何处理。来自 DB 的文本输出在 ckeditor 的单行中出现,没有换行符。如果我在此表单上输出时使用 nl2br,它可以工作,但会在通过 ckeditor 发布的早期文本上添加双 BR。
$content = preg_replace("/\r\n|\r/", "<br />", $content);
也按照类似问题的stackoverflow上的一些人的建议进行了尝试
请建议我为这个问题提供一些功能。
还建议如果我需要在插入 SQL 之前使用一些功能,如 htmlentities 或 stripslashes 来处理内容。