以正确的方式在mysql中换行符?

时间:2015-04-22 10:47:38

标签: php mysql special-characters line-breaks

这似乎是一个重复的问题,但我从来没有找到一致的完整解决方案。其他帖子的答案似乎在短时间内起作用然后随机打破。我确定我正在犯一个菜鸟错误。

允许用户在mysql中正确输入文本并正确回显换行符的最佳“完整”路径是什么。处理所有可能性,例如“返回键”,“输入键”,从任何单词或网站复制和粘贴,以及特殊字符,如á,',“。

当前设置:

MySQL行:type - text,colloation - utf8_unicode_ci

HTML:textarea

PHP提交:

$escaped = array_map('mysql_real_escape_string', $_POST); 
$escaped = stripslashes($escaped);

PHP echo:

nl2br($textfield)

我不确定用户做了什么,但有时它仍会回显nnn而不是休息。

由于

***更新** 我一直在寻找完全错误的地方弄乱这些。 我发现Magic Quotes已启用,导致断行和特殊字符出错。 谢谢大家的帮助。

2 个答案:

答案 0 :(得分:0)

这会改善您的情况吗?

$escaped = array_map('mysql_real_escape_string', $_POST); 
$escaped = nl2br($textfield)
//$escaped = stripslashes($escaped);

编辑: 为什么要删除斜线?

在剥离斜杠之前,您可以搜索并使用换行符。您还可以使用PHP_EOL特殊字符进行探索,但我认为这与\n\r\n

相同

对于其他阅读此内容的人,mysql_ 已弃用 ,应替换为MySQLi_

答案 1 :(得分:-1)

您需要删除stripslashes($escaped)。 它将\n更改为n,将\n\n更改为nn