2010-06-10 27 views
3

我使用PHP降價庫:http://michelf.com/projects/php-markdown/和JavaScript庫降價:http://attacklab.net/showdown/如何禁止使用markdown(PHP和JS)的所有HTML?

我希望禁止所有的HTML,無論是降價的版本似乎允許它肆意地。我的第一個嘗試就是在輸入markdown之前轉義所有html實體。但是,這也會脫離<hyperlink><email>語法,這非常有用。

我想逃避所有的HTML(不刪除),但保留所有markdown語法。

+1

快速問題:爲什麼你在JavaScript和PHP中翻譯它?從DRY的角度來看,AJAX翻譯不是更有意義嗎?只是我的2c。 – 2010-06-10 23:20:07

+2

PHP處理預先存在內容的所有降價轉換。編輯時,我使用javascript來轉換降價,就像SO一樣。 – peterjwest 2010-06-10 23:25:26

回答

3

您有兩種選擇。

首先,您實際上可以關心用戶提交的HTML並對其進行處理。試試lib_filter Cal Henderson(Flickr的名氣)或者更重要的東西HTMLPurifier。其次,如果你真的只想要中和所有的HTML,但保留特殊的語法,請使用htmlspecialchars,然後使用正則表達式替換您正在尋找的確切字符串的轉換。這可能是一個多一點毛多。 ;)

是的,這些都是PHP實現,而不是Javascript。當用戶停止鍵入片刻時,ajax調用特殊用途的預覽生成腳本應該足夠快。或者讓他們點擊一個按鈕。

+0

我認爲正則表達式選項,但匹配的URL和電子郵件地址與正則表達式是有點icky。 我會檢查出HTMLPurifier,謝謝。 – peterjwest 2010-06-11 11:05:02