我在管理面板中使用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);
在文本区域使用ckeditor的管理员批准表上不使用任何处理。DB的文本输出在ckeditor的单行中没有换行符出现。如果我在此表单上输出时使用nl2br,它可以工作,但会在通过ckeditor发布的早期文本中添加双BR。
也尝试$content = preg_replace("/\r\n|\r/", "<br />", $content);过有人对类似问题在stackoverflow上提出的建议
$content = preg_replace("/\r\n|\r/", "<br />", $content);
请建议我一些解决此问题的功能。
还建议如果需要在插入SQL之前使用htmlentities或反斜杠之类的功能来处理内容。
只需先替换新行\r\n, \r,然后修剪它。
\r\n, \r
$content = preg_replace("/\r\n|\r/", "<br />", $_POST["content"]); $content = trim($content])
或者:
$content = nl2br($_POST["content"]); $content = trim($content)
祝你好运。