我有一个表单,我输入了一个换行符,当我输入它时看起来是正确的,但是当数据现在从数据库中拉出而不是空格时,我得到\ n \ r \ n字符串显示。
我尝试这样做:
$hike_description = nl2br($hike_description);
但它不起作用。有谁知道如何解决这个问题?我正在使用PHP。 这是发生这种情况的页面。请参阅页面的描述部分: http://www.comehike.com/hikes/scheduled_hike.php?hike_id=130
谢谢, 亚历
答案 0 :(得分:2)
有谁知道如何解决这个问题?
不确定。 您的代码执行不必要的转义,很可能是在向数据库添加文本之前 所以,不必替换它,你必须找到有害的代码并摆脱它。
答案 1 :(得分:1)
这意味着,您可能在数据库中有纯文本'\ n \ r'字符串。
尝试在显示之前清理db输出:
$sanitized_text = preg_replace('/\\[rn]/','', $text_from_db);
(只是一个猜测)。
<强>附录强>:
当然,正如Col. Shrapnel指出的那样,有一些根本错误的东西 与数据库的内容(或者,它按照惯例以这种方式使用,你不知道)。
目前,您已修复部分症状 但是寻找这些逃脱角色的原因要好得多 完全在数据库中。
此致
RBO
答案 2 :(得分:0)
您可以使用str_replace清理输入。
$hike_description = nl2br(str_replace("\r\n", "\n", $hike_description));
答案 3 :(得分:0)
$hike_description = str_replace(array('\n','\r'),'',$hike_description);
您可能还想了解PHP中单引号和双引号之间的差异:http://php.net/manual/en/language.types.string.php