BBCODE,即BB代码,属于轻量级标记语言(Lightweight Markup Language)的一种,如字面上所显示的,它主要是使用在BBS、论坛、Blog等网络应用上。BBCode最初由Ultimate Bulletin Board讨论区系统发展出来,因此常见UBB代码的称呼。BBCode的语法通常为[标记]这种形式,即语法左右用两个中括号包围,以作为与正常文字间的区别。系统解译时遇上中括号便知道该处是BBcode,会在解译结果输出到客户端时转换成最为通用的HTML语法。

要过滤他有两个思路,一个是先转化为html,再用strip_tags即可,下面是具体函数

 $match) {
			list($tag, $param, $innertext) = array(
				$matches[1][$key],
				$matches[2][$key],
				$matches[3][$key]
			);
			switch ($tag) {
				case 'b':
					$replacement = "$innertext";
					break;
				case 'i':
					$replacement = "$innertext";
					break;
				case 'size':
					$replacement = "$innertext";
					break;
				case 'color':
					$replacement = "$innertext";
					break;
				case 'center':
					$replacement = "
$innertext
"; break; case 'quote': $replacement = "
$innertext
" . $param ? "$param" : ''; break; case 'url': $replacement = '$innertext"; break; case 'img': @list($width, $height) = preg_split('`[Xx]`', $param); $replacement = "'; break; } $string = str_replace($match, $replacement, $string); } } return $string; } $text = <<

第二种办法更简单,直接用正则把[]内的内容删除即可

$cont_str = trim( preg_replace("/\[.*\]/", '', $cont_str) );

推荐第二种方法

标签: none

添加新评论