将换行符替换为<br/>并将其保存到数据库

时间:2013-12-06 18:01:49

标签: javascript php mysql

我发现此代码replace(/\\r\\n/g, "<br />");用于在textarea中输入字符串后将换行符替换为<br />。但我无法找到如何将其保存在数据库中的答案。

我的问题是:

  1. 例如,如果我输入“你好世界!!!”在textarea里面

    它在数据库中看起来像"Hello<br />World!!!"吗?或者它在数据库中看起来像"Hello\nWorld!!!"吗?
    但我用<br />试了一下,我得到了我想要的东西,所以我说的是它看起来像第一个吗?
  2. 如何使用<br />将其保存到数据库中???

    非常感谢您的回复。谢谢:))

2 个答案:

答案 0 :(得分:4)

使用

nl2br($string)

它会自动输入代码中换行符的<br />

http://php.net/manual/en/function.nl2br.php

答案 1 :(得分:2)

由于我已经指定的原因,您不希望将HTML放在数据库中,除非您确定它只包含HTML。

例如,假设我的名字是"Chris Völkel",如果您将其作为HTML存储在数据库中,它将如下所示:"Chris V&ouml;lkel"。 这样做的问题是你不能在任何不是HTML的地方使用这个名字。

例如,您的客户可能会要求您将数据库数据导出为CSV文件。您最终会在CSV文件中提供客户端HTML - 不理想,对吗?

相反,您应该在Web浏览器上呈现数据时将数据编码为HTML:

$data = $_POST['data'];
// ...
$stmt->bind_param($data);

后来......

echo nl2br(htmlspecialchars($data));