我在管理面板中使用 ckeditor,但在用户提交表单中使用简单的文本框,以便用户可以输入文本并提交。问题是当用户在带有换行符的文本区域中输入文本时,它会像在 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 等函数来处理内容。
最佳答案
只需替换新行\r\n,\r
,然后修剪它。
$content = preg_replace("/\r\n|\r/", "<br />", $_POST["content"]);
$content = trim($content])
或者:
$content = nl2br($_POST["content"]);
$content = trim($content)
祝你好运。
关于php - 在 SQL 中将换行符转换为 BR 后如何保存 Textarea 输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12822371/