欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

bbcode解析 [code] 的有关问题

程序员文章站 2022-04-19 08:16:15
...
bbcode解析 [code] 的问题
本帖最后由 sky94132003 于 2014-10-30 16:41:28 编辑 之前已问过相关的问题
版主大哥之前已初步解决了
http://bbs.csdn.net/topics/390900798

但后来发觉...如果想帮code加上一个css是不可能的

比如以下的代码
在showBBcodes()中过滤了[code]

但如果数组中加入code来显示代码, 想转义成指定的DIV...那么就会有问题了!

问题二. 如何才能一次性过滤所有function 的[code]? 比如还有 parseSmiley() 和 linkAdd()

有更智能的方法吗? 还是只能在每一个都加上?


代码补上,但因为代码中有出现[ code] 那就不用代码功能贴了抱歉

完整版代码在这:点我

class BBCode {

public function __construct(){}

private function showBBcodes($text) {

$text = htmlspecialchars($text); //编码已存在的 HTML
preg_match_all('#\[code\](.*?)\[/code]#is', $text, $stack);

// BBcode array
$find = array(
'~\[b\](.*?)\[/b\]~s',
'~\[i\](.*?)\[/i\]~s',
'~\[quote\](.*?)\[/quote\]~s',
'~\[code\](.*?)\[/code\]~s'
);

// HTML tags to replace BBcode
$replace = array(
'$1',
'$1',
'
$1
',
'
$1
'
);

$text = nl2br(preg_replace($find,$replace,$text));
foreach($stack[1] as $t) {
$text = preg_replace('#\[code\].*?\[/code]#is', $t, $text,1);
}
return $text;
}


//表情转义
private function parseSmiley($text){
// Smiley to image
$smileys = array(
':wave:' => 'wave.gif',
':hahaha:' => 'hahaha.gif',
);
// Now you need find and replace
foreach($smileys as $smiley => $img){
$text = str_replace(
$smiley,
"bbcode解析 [code] 的有关问题",
$text
);
}
// Now only return it
return $text;
}

//为连结自动加上A标签
private function linkAdd($content){
//提取替换出所有A标签(统一标记)
preg_match_all('/.*?/i',$content,$linkList);
$linkList=$linkList[0];
$str=preg_replace('/.*?/i','',$content);
//提取替换出所有的IMG标签(统一标记)
preg_match_all('/bbcode解析 [code] 的有关问题]+>/im',$content,$imgList);
$imgList=$imgList[0];
$str=preg_replace('/bbcode解析 [code] 的有关问题]+>/im','',$str);
//提取替换出所有的YOUTUBE标签(统一标记)
preg_match_all('/

网友评论

文明上网理性发言,请遵守 新闻评论服务协议

我要评论
  • bbcode解析 [code] 的有关问题
  • 专题推荐