【问题标题】:How to save Textarea input after convert line breaks as BR in SQL如何在 SQL 中将换行符转换为 BR 后保存 Textarea 输入
【发布时间】:2012-10-01 02:28:20
【问题描述】:

我在管理面板中使用 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/", "&lt;br /&gt;", $content);,正如stackoverflow上的一些人在类似问题上所建议的那样

请给我一些解决这个问题的功能。

还建议如果我需要在插入 SQL 之前使用一些函数,如 htmlentities 或 stripslashes 来处理内容。

【问题讨论】:

  • 我使用这样的东西:htmlentities( str_replace("\n", "&lt;br /&gt;", $_POST['content']), ENT_HTML5, 'UTF-8' )
  • @MarcB 已经在使用 nl2br 但无法正常工作:(

标签: php sql textarea


【解决方案1】:

只需先替换新行\r\n, \r,然后修剪即可。

$content = preg_replace("/\r\n|\r/", "<br />", $_POST["content"]);
$content = trim($content])

或者:

$content = nl2br($_POST["content"]);
$content = trim($content)

祝你好运。

【讨论】:

  • 哇!它非常适合解决方案。从 2 天开始测试各种方法:D 欢呼和另外 1 个请在 nl2br 之前或之后在哪里使用 mysql_real_escape_string ?
  • :) 很高兴,在 trim() 之后使用 mysql_real_escape_string(),祝你好运 :)
  • 如果用户在文本前后按回车键(换行符),上述代码将失败。 trim() 在这种情况下不起作用。
【解决方案2】:

您需要在需要时使用 nl2br 来显示值,而不是保存它。

【讨论】:

  • 我使用 ckeditor 发布了大部分在 DB 中保存 BR 和 P 标签的内容,因此 cnt 使用带有输出的 nl2br
猜你喜欢
  • 2011-08-25
  • 2011-11-02
  • 2011-11-12
  • 1970-01-01
  • 2012-01-14
  • 2021-07-21
  • 2014-02-09
  • 2021-03-30
相关资源
最近更新 更多