PHP/MYSQL 用换行符替换 n

PHP/MYSQL replace n with newline

我有一个问题:所以我有一个数据来自数据库并存储在文本区域中。当用户更改文本区域中的数据时,内容将发送到 javascript 并通过 AJAX(POST 到 PHP 脚本)更新数据库。在用户开始添加换行符之前,这可以正常工作。然后 javascript 将其转换为 \n 字符,因此它作为 \n.

存储在数据库中

我想要的是在我的数据库中有实际的换行符而不是 \n 换行符。有什么方法可以使用 php 将 \n 替换为实际的换行符(不是 br)?我尝试在使用 char(10) 编辑后更改数据库字段,但出于某种原因,这在脚本中不起作用,除非我在 phpmyadmin?

中手动执行此操作

当使用完整的 php 请求进行编辑时,文本区域中的换行符在 mysql 中正确存储为 char(10),而不是 \n。

有人知道吗?

按原样存储,但先使用 real_escape_string

转义

real_escape_string 将换行符转换为 4 个字符的字符串 '\n\r'

$text = $mysqli->real_escape_string($text);

使用[nl2br][1]函数将/n替换为换行符

在字符串中出现换行符 (\n) 的地方插入换行符:

<?php
echo nl2br("One line.\nAnother line.");
?>

以上代码的浏览器输出将是:

One line.
Another line.