Textareas,New Lines和nl2br的问题

Cri*_*ian 2 php mysql nl2br

我无法从数据库中获取数据并在HTML页面textarea中回显.

这是用于将数据导入数据库的代码:

$_SESSION['content'] = mysqli_real_escape_string($link, strip_tags($_POST['content'],'<a>'));
Run Code Online (Sandbox Code Playgroud)

除了数据库中的链接和存储之外,这只是简单地剥离HTML标记.如果你查看数据库,换行符是不可见的,但我认为它们是\n和\ r \n.

如果我要输入textarea:

This should be a 

New line
Run Code Online (Sandbox Code Playgroud)

数据库将其存储为:

This should be a<br>
New line
Run Code Online (Sandbox Code Playgroud)

当回显到textarea时,这就是显示的内容:

This should be a \r\n\r\nNew line
Run Code Online (Sandbox Code Playgroud)

我确定我错过了一些非常简单的东西,任何帮助都非常感激.

更新:

如果我删除mysqli_real_escape_string,换行符会被保留并完美地工作,我是否必须为此牺牲安全性?

解决了:

导致问题的mysqli_real_escape_string,不会回显已应用此变量的变量.从数据库插入,删除等时只使用mysqli_real_escape_string,而不是之前,绝对不是之后;)

感谢大家!

Sha*_*cer 5

使用正确的HTML/CSS.

;-)

该行断开HTML预标记中的所有工作,或者将CSS空白属性设置为的标记:

white-space: pre;
Run Code Online (Sandbox Code Playgroud)

资源:

http://www.w3schools.com/cssref/pr_text_white-space.asp

http://www.quirksmode.org/css/whitespace.html