我目前正在开发一个集成了评论系统的系统,该系统正在Codeigniter上运行,因此我希望创建一个降价库,但功能非常少。
我想要的功能是
*bold*
_italic_
实际上,帖子数据将通过Codeigniter的XSS Class运行,然后才能进入降级类
所以我的问题是最好的方法是什么,如果我在那里使用一个库并禁用某些功能,我应该从头开始构建,如果是这样,我应该如何构建我应该考虑哪些课程。
答案 0 :(得分:4)
我最近处于类似情况,我想支持某种标记(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);
}
答案 1 :(得分:2)
答案 2 :(得分:2)
对我来说,集成Markdown最简单的方法就是
...以防有人 - 像我一样 - 再次偶然发现这个旧线程:)