网上一直没找到合适的bbcode解析类
所以东抄西抄的做了一个
但是出现两问题了,请各位高手协助一下。
代码在最下
问题一:bbcode解析时遇到[code][/code]不做任何处理...比如表情/其他bbcode等不转义 问题二:如何过滤HTML? 我用BBCODE保存资料就是不想用户用HTML.....
但我测试时...发现如何手动输入:
dddd
竟然能真的有效
所以如果是插入一些js或者iframe应该也是可以的吧?
有什么方法可方止?
下面提供整个class 代码, 刚开始, 东抄西抄组装,还没优化好,请见谅
https://www.gxlcms.com/$1', 'https://www.gxlcms.com/$1', 'https://www.gxlcms.com/$1', 'https://www.gxlcms.com/$1'.'pre>', '
https://www.gxlcms.com/$1
', '
https://www.gxlcms.com/$1
', '
https://www.gxlcms.com/$1 | ', 'https://www.gxlcms.com/$1', 'https://www.gxlcms.com/$1', 'https://www.gxlcms.com/$1', 'https://www.gxlcms.com/$1', '
$2', '
$2', '
$2', '$2', '
', '
', '
' ); return nl2br(preg_replace($find,$replace,$text)); } //表情转义 private function parseSmiley($text){ // Smiley to image $smileys = array( ':wave:' => 'wave.gif', ':hahaha:' => 'hahaha.gif', ':hahahau:' => 'hahahau.gif', ':help:' => 'help.gif' ); // Now you need find and replace foreach($smileys as $smiley => $img){ $text = str_replace( $smiley, "
", $text ); } // Now only return it return $text; } //为连结自动加上A标签 private function linkAdd($content){ //提取替换出所有A标签(统一标记<{link}>) preg_match_all('/.*?<\/a>/i',$content,$linkList); $linkList=$linkList[0]; $str=preg_replace('/.*?<\/a>/i','<{link}>',$content); //提取替换出所有的IMG标签(统一标记<{img}>) preg_match_all('/
]+>/im',$content,$imgList); $imgList=$imgList[0]; $str=preg_replace('/
]+>/im','<{img}>',$str); //提取替换出所有的YOUTUBE标签(统一标记<{img}>) preg_match_all('/