以下面是源代码调用方法: $u=new EncodeQ3boy(); echo $u->ubbEncode(
一个UBB的PHP类_网学
浏览:
POST["ok"]); <form method=post action=""> <textarea name="ok" rows="6" cols="60"></textarea> <input type="submit"> </form> /* Text Encode Class Write by q3boy 2003.3.10 usage: $eq = new EncodeQ3boy($str);初始化类 //以下为ubbEncode参数 $eq->url = true; //启用url自动解析 默认false $eq->html = true; //启用HTML编码(处理<,>,全角/半角空格,制表符,换行符)默认true $eq->image = true; //启用图象标签解析 默认true $eq->font = true; //启用字体标签解析 默认true $eq->element = true; //启用外部元素解析 默认true $eq->flash = true; //启用Flash解析 默认true $eq->PHP = true; //启用语法高亮显示 默认true //ubbEncode参数结束 echo($eq->getImageOpener());//输出图片自动缩放所需js函数 echo $eq->htmlEncode(); //输出ubb编码后字符串 echo"<hr>"; echo $eq->ubbEncode(); //输出ubb编码后字符串 echo"<hr>"; echo $eq->removeHtml(); //输出移除html标签的字符串 echo"<hr>"; echo $eq->ubbEncode(); //输出移除ubb标签的字符串 支持ubb标签列表: 图片类: 插入图片 [limg]/uploadfile/201212/7/9A104152624.gif[/limg] 图片左绕排 [rimg]/uploadfile/201212/7/9A104152624.gif[/rimg] 图片右绕排 [cimg]/uploadfile/201212/7/9A104152624.gif[/cimg] 图片居中绕排 文本控制类: [br] 换行符 [b]粗体字[b] [i]斜体字[i] [u]下划线[u] [s]删除线[s] [sub]文字下标[sub] [sup]文字上标[sup] [left]文字左对齐[left] [right]文字右对齐[right] [center]文字居中[center] [align=(left|center|right)]文字对齐方式[align] [size=([1-6])]文字大小[size] [font=(字体)[font] [color=(文字颜色)][color] [list]无序列表[list] [list=s]有序列表[list] [list=(A|1|I)]有序列表(列表方式为(abc,123,I II III))[list] [list=(num)]有序列表(自num开始计数)[list] [li]列表单元项[li] 外部元素类: 链接 链接文字 邮件地址 说明文字邮件地址 [quote]引用块[/quote] [iframe]内插帧地址[/iframe] [iframe=(内插帧高度)]内插帧地址[/iframe] [swf]flash动画地址[/swf] [swf=宽度,高度]flash动画地址[/swf] 代码块: [code][/code] [php][/php] [code 代码块名称][/code] [php 代码块名称][/php] 如需使用php语法高亮请务必在代码块两端加上"<??>"标签 */ class EncodeQ3boy { var $str = ""; var $iconpath = "/image/icon";//图标文件路径 var $imagepath = "/upfiles/article";//图片文件默认路径 var $tagfoot = ' border="1" onload="ImageLoad(this);" onClick="ImageOpen(this)" style="cursor: hand" ';//图片文件附加属性 var $url = false; //url自动解析 var $html = true; //HTML编码 var $image = true; //解析图象标签 var $font = true; //字体标签 var $element = true; //外部元素 var $flash = true; //Flash var $php = true; //语法高亮显示 function EncodeQ3boy($str='',$imgph='') { if($str) { $str = strtr($str,array("nr"=>"n","rn"=>"n","r"=>"n"," "=>" ")); $this->str = $str; } if($imgph) $this->imagepath = $imgph; } function getImageOpener() { Return "<script language="JavaScript" type="text/Javascript">rnfunction ImageLoad(img) {rnif(img.width>480) img.width=480;rn}rnfunction ImageOpen(img) {rnwindow.open(img.src,'','menubar=no,scrollbars=yes,width='+(screen.width-8)+',height='+(screen.height-74)+',left=0,top=0');rn}rn</script>"; } function removeHtml($str='') { if(!$str) $str = $this->str; return strip_tags($str); } function removeUbb($str='') { if(!$str) $str = $this->str; return preg_replace("/[/?w+(s+[^]s]+)*s*]/is","",$str); } function htmlEncode($str='') { if(!$str) $str = $this->str; $ary = array( '<'=>'<', '>'=>'>', " "=>" ", " "=>" " ); $str = preg_replace("/n{2,}/s","nn",strtr($str,$ary)); Return str_replace("n","n<br />",$str); } function ubbEncode($str='') { if(!$str) $str = $this->str; $rpl_ary = array(); $rpl_ary = array(); if($this->html) $str = $this->htmlEncode($str,true); $tagfoot = $this->tagfoot; $icon = $this->iconpath; $image = $this->imagepath; if($this->php) { preg_match_all('/(n<br />)*[(php|code)s*(.*?)]s*(.+?)s*[/(php|code)](n<br />)*/is',$str,$ary); $str = preg_split('/(n<br />)*[(php|code)s*(.*?)]s*(.+?)s*[/(php|code)](n<br />)*/is',$str); } if($this->url){ $reg_ary = array_merge($reg_ary,array( '/(?<!]|=)s*(bw+@(?:w+.)+w{2,3})bs*(?<![)/i', '/(?<!]|=)s*(b(http|https|ftp)://(w+.)+w+(/[w|&|%|?|=|+|.|-]+)*)bs*(?<![)/i', )); $rpl_ary = array_merge($rpl_ary,array( '1', '1', )); } if($this->image) { $reg_ary = array_merge($reg_ary,array( '//i', '/[limg]http://www.q.cc/2008/11/09/s*http(s?):/(S+)s*[/limg]/i', '/[rimg]http://www.q.cc/2008/11/09/s*http(s?):/(S+)s*[/rimg]/i', '/[cimg]http://www.q.cc/2008/11/09/s*http(s?):/(S+)s*[/cimg]/i', '//i', '/[limg]http://www.q.cc/2008/11/09/s*([^/:]+)s*[/limg]/i', '/[rimg]http://www.q.cc/2008/11/09/s*([^/:]+)s*[/rimg]/i', '/[cimg]http://www.q.cc/2008/11/09/s*([^/:]+)s*[/cimg]/i', '//i', '/[limg]http://www.q.cc/2008/11/09/s*(S+)s*[/limg]/i', '/[rimg]http://www.q.cc/2008/11/09/s*(S+)s*[/rimg]/i', '/[cimg]http://www.q.cc/2008/11/09/s*(S+)s*[/cimg]/i', )); $rpl_ary = array_merge($rpl_ary,array( '<img src="http1://2"'.$tagfoot.'>', '<img src="http1://2"'.$tagfoot.' align="left">', '<img src="http1://2"'.$tagfoot.' align="right">', '<div align="center"><img src="http1://2"'.$tagfoot.'></div>', '<img src="'.$image.'/1"'.$tagfoot.'>', '<img src="'.$image.'/1"'.$tagfoot.' align="left">', '<img src="'.$image.'/1"'.$tagfoot.' align="right">', '<div align="center"><img src="'.$image.'/1"'.$tagfoot.'></div>', '<img src="1"'.$tagfoot.'>', '<img src="1"'.$tagfoot.' align="left">', '<img src="1"'.$tagfoot.' align="right">', '<div align="center"><img src="1"'.$tagfoot.'></div>', )); } if($this->font) { $reg_ary = array_merge($reg_ary,array( '/[br]/i', '/s*(.+?)s*/is', '/s*(.+?)s*/is', '/s*(.+?)s*/is', '/[s]s*(.+?)s*[/s]/is', '/s*(.+?)s*/is', '/s*(.+?)s*/is', '/[left]s*(.+?)s*[/left]/is', '/[right]s*(.+?)s*[/right]/is', '/[center]s*(.+?)s*[/center]/is', '/[align=s*(left|center|right)]s*(.+?)s*[/align]/is', '/[size=s*([.|d])s*]s*(.*?)s*[/size]/is', '/s*(.*?)s*/is', '/s*(.*?)s*/is', '/[list]s*(<br />)?s*(.+?)s*[/list]/is', '/[list=s]s*(<br />)?s*(.+?)s*[/list]/is', '/[list=(A|1|I)]s*(<br />)?s*(.+?)s*[/list]/is', '/[list=(S+?)]s*(<br />)?s*(.+?)s*[/list]/is', '/[li]s*(.+?)s*[/li]/is', )); $rpl_ary = array_merge($rpl_ary,array( '<br />', '<b>1</b>', '<i>1</i>', '<u>1</u>', '<s>1</s>', '<sub>1</sub>', '<sup>1</sup>', '<div align="left">1</div>', '<div align="right">1</div>', '<div align="center">1</div>', '<div align="1">2</div>', '<font size=1pt;">2</font>', '<font face="1">2</font>', '<font color="1">2</font>', '<ul>2</ul>', '<ol>2</ol>', '<ol type="1">3</ol>', '<ol start="1">3</ol>', '<li>1</li>', )); } if($this->element){ $reg_ary = array_merge($reg_ary,array( '/s*(.+?)s*/i', '/s*(.+?)s*/i', '/s*(.+?)s*/i', '/s*(.+?)s*/i', '/[quote]s*(<br />)?s*(.+?)s*[/quote]/is', '/[iframe]s*(.+?)s*[/iframe]/is', '/[iframe=s*(d+?)s*]s*(.+?)s*[/iframe]/is', )); $rpl_ary = array_merge($rpl_ary,array( '<a href="1" target="_blank"><img src=/uploadfile/201212/7/20104153107.gif" border="0" alt="超链接地址" align="bottom">2</a> ', '<a href="1" target="_blank"><img src=/uploadfile/201212/7/20104153107.gif" border="0" alt="超链接地址" align="bottom">1</a> ', '<a href="mailto:1"><img src=/uploadfile/201212/7/B3104153177.gif" border="0" alt="电子邮件地址" align="bottom">2</a> ', '<a href="mailto:1"><img src=/uploadfile/201212/7/B3104153177.gif" border="0" alt="电子邮件地址" align="bottom">1</a> ', '<table cellpadding="0" cellspacing="0" border="0" width="90%" align="center" style="border:1px gray solid;"><tr><td><table width="100%" cellpadding="5" cellspacing="1" border="0"><tr><td width="100%">2</td></tr></table></td></tr></table>', '<iframe src="" name="ifr1" frameborder="0" allowtransparency="true" scrolling="yes" width="100%" height="340" marginwidth="0" marginheight="0" hspace="0" vspace="0">1</iframe><br><a href="1" target="_blank">如果你的浏览器不支持嵌入框,请点这里查看</a>', '<iframe src="2" name="ifr1" frameborder="0" allowtransparency="true" scrolling="yes" width="100%" height="1" marginwidth="0" marginheight="0" hspace="0" vspace="0">2</iframe><br><a href="2" target="_blank">如果你的浏览器不支持嵌入框,请点这里查看</a>', )); } if($this->flash){ $reg_ary = array_merge($reg_ary,array( '/[swf]s*(.+?)s*[/swf]/i', '/[swf=(d+),(d+)]s*(.+?)s*[/swf]/i' )); $rpl_ary = array_merge($rpl_ary,array( '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0"><param name="movie" value="1" /><param name="quality" value="high" /><embed src="1" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash"></embed></object>', '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="1" height="2"><param name="movie" value="3" /><param name="quality" value="high" /><embed src="3" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="1" height="2"></embed></object>' )); } if(sizeof($reg_ary)&&sizeof($rpl_ary))$str = preg_replace($reg_ary,$rpl_ary,$str); if($this->php) { $tmp = $str[0]; for($i=0; $i<sizeof($ary[4]); $i++) { ob_start(); highlight_string(trim(strtr($ary[4][$i],array('<'=>'<','>'=>'>'," "=>" ","<br />"=>"")))); $tmp .= '<table border=1 cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#055AA0" width=95%><tr><td><code>'.(trim($ary[3][$i])?trim($ary[3][$i]):'代码片段:').'</code><br /><table width="100%" cellpadding="0" cellspacing="0" border="0"><tr><td width="100%" class="code">'.ob_get_contents().'</td></tr></table></td></tr></table>'.$str[$i+1]; ob_end_clean(); } $str = $tmp; unset($tmp); } Return $str; } } //上面就是完整的UBB函数 //下面是调用方法, $u=new EncodeQ3boy(); echo $u->ubbEncode(
一个UBB的PHP类_网学
浏览:
POST["ok"]); <form method=post action=""> <textarea name="ok" rows="6" cols="60"></textarea> <input type="submit"> </form>
(责任编辑:admin) |