2011-07-11 13 views
2

私は自分のサイトにWMDエディタを持っています。私はDBにマークダウンを保存しています。私は、データベースへの値下げを送信する前に、しかし、私はそのようなmysql_real_escape_stringの、でそれをフィルタリング:PHPマークダウン - html出力

$to_database = mysql_real_escape_string($_POST['markdown']); 

そして、それは大丈夫です。しかし今、私はそれを示したいので、私はPHP Markdown(マークダウンをhtmlに変換する)を使用します。しかし問題は、新しい行の代わりに\ r \ n\ nと表示されているということです。私はnl2br関数を試しましたが、それは役に立ちませんでした。出力をエスケープしなくても(markdownをhtmlに変換せずにhtmlpurifierを使用しても)、新しい行ではなく\ nを取得します。 mysql_real_escape_stringを削除したときだけ、問題なく表示されます。

答えて

0

nnnnnnnnn bbbbbbbbbbb

は、彼らは変換しないされており、もはや改行として行動しています。あなたはそれらを交換したい:

$markdown = str_replace('\r\n','<br/>',$_POST['markdown']); 
$markdown = str_replace('\n','<br/>',$markdown); 

ます。また、この操作が必要になります:

$markdown = html_entity_decode($markdown); 
+0

ありがとうございますが、それは
です(ソースコードで< br/>です)。 PHP Markdownは何とか
をhtmlエンティティに変換します(私がphpのマークダウン処理を削除したときに、改行がOKになったためです)。 – apdpdpdpddc

+0

編集を確認してください、あなたはhtml_entity_decodeを使用したいかもしれません – Eddie

+0

ありがとう、それは今働きます。 – apdpdpdpddc

0

あなたがmysql_real_escape_stringを使用するときようにしますが、何かご入力層の上に座って、バックスラッシュで入ってくる文字のエスケープを有することができます実際にダブルエスケープされたコンテンツを取得しています。

magic_quotes_gpcが非常に不運な場合は、get rid of itを早めに、または本当にできない場合はwork around itにしてください。

+0

magic_quotes_areが無効になっています。 – apdpdpdpddc

関連する問題