摆脱\ r \ n字符串

时间:2011-02-28 17:49:02

标签: php encoding

我有一个表单,我输入了一个换行符,当我输入它时看起来是正确的,但是当数据现在从数据库中拉出而不是空格时,我得到\ n \ r \ n字符串显示。

我尝试这样做:

$hike_description = nl2br($hike_description);

但它不起作用。有谁知道如何解决这个问题?我正在使用PHP。 这是发生这种情况的页面。请参阅页面的描述部分: http://www.comehike.com/hikes/scheduled_hike.php?hike_id=130

谢谢, 亚历

4 个答案:

答案 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