【问题标题】:PHP to Mysql Line break QuestionPHP到Mysql换行问题
【发布时间】:2011-09-05 06:19:18
【问题描述】:

我很难得到一个表单提交的文本区域,当人们在他们的地址上按 Enter 键时会换行。例如。

<textarea name="address"></textarea>

我正在使用它来获取帖子

$address = mysql_real_escape_string(trim($_POST['address']));

他们正在输入123 test &lt;return&gt;city,state

然后他们提交后,在mysql数据库中地址显示123 testnrcity state

那么我该如何处理呢?

谢谢!

【问题讨论】:

  • php 的nl2br() 方法?
  • 如何将$address 插入到INSERT 查询中?字段类型是什么?
  • 将存储$address的代码贴在数据库中。那个代码有味道。您是否在代码中的某处使用了stripslashes
  • 关于 mysql 部分不能告诉你太多,因为我使用的是 WP 函数 add_user_meta($id,'string',$address);
  • 你确定WP函数还没有调用mysql_real_escape_string吗?你可能会逃跑两次......

标签: php mysql line-breaks


【解决方案1】:

使用 nl2br?

$address = mysql_real_escape_string(trim(nl2br($_POST['address'])));

HTH :)

【讨论】:

  • 是的,我已经试过了,它回到了 123 测试车道
    rn第二行
  • 不要在数据库中存储 HTML 转义文本。 HTML转义的地方在输出层。 (如果您想将其发送到 NON-html 输出怎么办?)HTML 实体在 CSV 或 JSON 输出中“看起来不太好”。
  • @vbence - 那我该怎么办?可以举个例子吗?
  • 我仍然不知道 nr 的来源。 :S
  • @Rick 尝试将 str_ireplace 更改为您需要的内容
【解决方案2】:

您是否检查过数据库字段中的内容?只需使用 phpMyAdmin 或类似工具显示数据库内容。换行符可以是一个换行符或两个字符:\n。如果是后者,那么您的输入可能被转义了两次。还是只是“n”。然后可能还有另一个人在沿途的某个地方逃跑。你使用数据库抽象层吗?也许它也逃避了价值观。

【讨论】:

    【解决方案3】:

    我无法以我想要的方式解决这个问题,只是使用 str_replace() 将所有“\r\n”内容替换为空格...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多