PHP Sanitized markdown - html输出

时间:2011-07-11 21:36:20

标签: php mysql-real-escape-string wmd-editor wmd-markdown

我的网站上有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为

2 个答案:

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