我目前正在處理一個集成了評論系統的系統,系統在Codeigniter上運行,所以我正在尋找創建一個降價庫,但功能非常少。創建簡單markdown類
特點即時尋找到有是
- Autolinking
- 大膽
*bold*
- 斜體
_italic_
而這幾乎是,POST數據將通過笨的XSS類之前運行它降至降級
所以我的問題是什麼是最好的方式來做到這一點,我應該使用一個庫,並禁用某些功能,我應該從頭開始,如果是這樣,,我應該如何建立這個類,我應該做什麼事情考慮到。
我目前正在處理一個集成了評論系統的系統,系統在Codeigniter上運行,所以我正在尋找創建一個降價庫,但功能非常少。創建簡單markdown類
特點即時尋找到有是
*bold*
_italic_
而這幾乎是,POST數據將通過笨的XSS類之前運行它降至降級
所以我的問題是什麼是最好的方式來做到這一點,我應該使用一個庫,並禁用某些功能,我應該從頭開始,如果是這樣,,我應該如何建立這個類,我應該做什麼事情考慮到。
我最近在類似的情況下,我想支持某種標記(BB,Markdown等)。事實證明,BBCode已經有100年沒有完成任何工作,並且爲它編寫正則表達式解析器並不容易(至少對於格式良好的標記),所以我寫了一個非常簡單的骨骼函數來做到這一點。
我的版本還包括圖像,代碼和顏色支持以及嵌套標籤([b][i]bold and italic[/i][/b]
)。
function parseBBCode($string){
$search = array(
'/\[b\](.*?)\[\/b\]/',
'/\[i\](.*?)\[\/i\]/',
'/\[u\](.*?)\[\/u\]/',
'/\[img\](.*?)\[\/img\]/',
'/\[url\=(.*?)\](.*?)\[\/url\]/',
'/\[code\](.*?)\[\/code\]/',
'/\[color\=(.*?)\](.*?)\[\/color\]/'
);
$replace = array(
'<strong>\\1</strong>',
'<em>\\1</em>',
'<u>\\1</u>',
'<img src="\\1">',
'<a href="\\1" target="_blank">\\2</a>',
'<code>\\1</code>',
'<span style="color:\\1;">\\2</span>'
);
$new = preg_replace($search, $replace, $string);
return nl2br($new);
}
對我來說,整合的降價最簡單的方式是通過簡單地
...以防萬一有人 - 像我一樣 - 在這個舊線絆倒再次:)