我的网站上有WMD编辑器,我将降价存储在数据库中。但在我将markdown发送到数据库之前,我用mysql_real_escape_string过滤它,就像那样:
$to_database = mysql_real_escape_string($_POST['markdown']);
没关系。但现在我想展示它,所以我使用PHP Markdown(将markdown转换为html)。但问题是它显示 \ r \ n 和 \ n 而不是新行。我尝试了nl2br功能,但它没有帮助。即使我没有逃避输出(不要将markdown转换为html并使用htmlpurifier)我仍然得到\ n而不是新行。 只有当我删除mysql_real_escape_string时,它看起来还不错。
bbbbbbbbbbb nnnnnnnnn为
答案 0 :(得分:0)
他们正在被转换,不再作为换行符。你想要替换它们:
$markdown = str_replace('\r\n','<br/>',$_POST['markdown']);
$markdown = str_replace('\n','<br/>',$markdown);
您可能还想这样做:
$markdown = html_entity_decode($markdown);
答案 1 :(得分:0)
您可能会在输入图层上放置一些内容并使用反斜杠转义传入的字符,这样当您使用mysql_real_escape_string
时,您实际上会获得双重转义内容。
如果您非常不幸,那可能是magic_quotes_gpc
,在这种情况下,您应尽快get rid of it,或者如果您真的不能work around it。