Home >Backend Development >PHP Tutorial >一个UBB的PHP类

一个UBB的PHP类

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOriginal
2016-06-01 14:25:311276browse

以下面是源代码调用方法:

$u=new EncodeQ3boy();

echo $u->ubbEncode($_POST["ok"]);

/*<br>Text Encode Class<br>Write by q3boy 2003.3.10<br>usage:<br>$eq = new EncodeQ3boy($str);初始化类<br>//以下为ubbEncode参数<br>$eq->url   = true;    //启用url自动解析  默认false<br>$eq->html   = true;    //启用HTML编码(处理,全角/半角空格,制表符,换行符)默认true<br>$eq->image  = true;    //启用图象标签解析 默认true<br>$eq->font   = true;    //启用字体标签解析 默认true<br>$eq->element = true;    //启用外部元素解析 默认true<br>$eq->flash  = true;    //启用Flash解析   默认true<br>$eq->php   = true;    //启用语法高亮显示 默认true<br>//ubbEncode参数结束<br>echo($eq->getImageOpener());//输出图片自动缩放所需js函数<br>echo $eq->htmlEncode();     //输出ubb编码后字符串<br>echo"<hr>";<br>echo $eq->ubbEncode();      //输出ubb编码后字符串<br>echo"<hr>";<br>echo $eq->removeHtml();     //输出移除html标签的字符串<br>echo"<hr>";<br>echo $eq->ubbEncode();      //输出移除ubb标签的字符串<br>支持ubb标签列表:<br>图片类:<br><img src="/static/imghwm/default1.png" data-src="http://www.aaa.com/aaa.gif" class="lazy" onload="return imgzoom(this,550);" onclick="javascript:window.open(this.src);" style="max-width:90%" alt="一个UBB的PHP类" >  插入图片<br>[limg]http://www.aaa.com/aaa.gif[/limg] 图片左绕排<br>[rimg]http://www.aaa.com/aaa.gif[/rimg] 图片右绕排<br>[cimg]http://www.aaa.com/aaa.gif[/cimg] 图片居中绕排<br>文本控制类:<br>[br] 换行符<br>[b]粗体字[b]<br>[i]斜体字[i]<br>[u]下划线[u]<br>[s]删除线[s]<br>[sub]文字下标[sub]<br>[sup]文字上标[sup]<br>[left]文字左对齐[left]<br>[right]文字右对齐[right]<br>[center]文字居中[center]<br>[align=(left|center|right)]文字对齐方式[align]<br><font size="([1-6">)]文字大小[size]<br>[font=(字体)[font]<br>[color=(文字颜色)][color]<br><ul>无序列表<ul> <br><ul style="list-style-type:s">有序列表<ul> <br><ul style="list-style-type:(A|1|I)">有序列表(列表方式为(abc,123,I II III))<ul> <br><ul style="list-style-type:(num)">有序列表(自num开始计数)<ul> <br>[li]列表单元项[li]<br>外部元素类:<br>链接<br>链接文字<br>邮件地址<br>说明文字邮件地址<br><table cellpadding="0" cellspacing="0" border="1" width="94%" bordercolor="#000000" bgcolor="#F2F8FF" align="center"><tr><td><table width="100%" cellpadding="5" cellspacing="1" border="0"><tr><td bgcolor="#F6F6F6">引用块[/quote]<br>[iframe]内插帧地址[/iframe]<br>[iframe=(内插帧高度)]内插帧地址[/iframe]<br>[swf]flash动画地址[/swf]<br>[swf=宽度,高度]flash动画地址[/swf]<br>代码块:<br><br>[php][/php]<br>[code 代码块名称][/code]<br>[php 代码块名称][/php]<br>如需使用php语法高亮请务必在代码块两端加上"?>"标签<br>*/<br>class EncodeQ3boy {<br>    var $str      = "";<br>    var $iconpath   = "/image/icon";//图标文件路径<br>    var $imagepath   = "/upfiles/article";//图片文件默认路径<br>    var $tagfoot = ' border="1" style="cursor: hand" ';//图片文件附加属性<br>    var $url   = false;    //url自动解析<br>    var $html  = true;        //HTML编码<br>    var $image  = true;        //解析图象标签<br>    var $font  = true;        //字体标签<br>    var $element = true;        //外部元素<br>    var $flash  = true;        //Flash<br>    var $php   = true;        //语法高亮显示<br>    function EncodeQ3boy($str='',$imgph='') {<br>        if($str) {<br>            $str = strtr($str,array("nr"=>"n","rn"=>"n","r"=>"n"," "=>" "));<br>            $this->str = $str;<br>        }<br>        if($imgph) $this->imagepath = $imgph;<br>    }<br>    function getImageOpener() {<br>        Return "<script language="javascript" type="text/javascript">rnfunction ImageLoad(img) &#123;rnif(img.width>480) img.width=480;rn&#125;rnfunction ImageOpen(img) &#123;rnwindow.open(img.src,'','menubar=no,scrollbars=yes,width='+(screen.width-8)+',height='+(screen.height-74)+',left=0,top=0');rn&#125;rn</script>";<br>    }<br>    function removeHtml($str='') {<br>        if(!$str) $str = $this->str;<br>        return strip_tags($str);<br>    }<br>    function removeUbb($str='') {<br>        if(!$str) $str = $this->str;<br>        return preg_replace("/[/?w+(s+[^]s]+)*s*]/is","",$str);<br>    }<br>    function htmlEncode($str='') {<br>        if(!$str) $str = $this->str;<br>        $ary = array(<br>            ''            '>'=>'>',<br>            " "=>" ",<br>            " "=>" "<br>            );<br>        $str = preg_replace("/n{2,}/s","nn",strtr($str,$ary));<br>        Return str_replace("n","n<br>",$str);<br>    }<br>    function ubbEncode($str='') {<br>        if(!$str) $str = $this->str;<br>        $rpl_ary = array();<br>        $rpl_ary = array();<br>        if($this->html) $str = $this->htmlEncode($str,true);<br>        $tagfoot = $this->tagfoot;<br>        $icon  = $this->iconpath;<br>        $image  = $this->imagepath;<br>        if($this->php) {<br>            preg_match_all('/(n<br>)*[(php|code)s*(.*?)]s*(.+?)s*[/(php|code)](n<br>)*/is',$str,$ary);<br>            $str = preg_split('/(n<br>)*[(php|code)s*(.*?)]s*(.+?)s*[/(php|code)](n<br>)*/is',$str);<br>        }<br>        if($this->url){<br>            $reg_ary = array_merge($reg_ary,array(<br>                '/(?                '/(?            ));<br>            $rpl_ary = array_merge($rpl_ary,array(<br>                '1',<br>                '1',<br>            ));<br>        }<br>        if($this->image) {<br>            $reg_ary = array_merge($reg_ary,array(<br>            '/<img src="/static/imghwm/default1.png" data-src="s*http(s?)://(S+)s*" class="lazy" onload="return imgzoom(this,550);" onclick="javascript:window.open(this.src);" style="max-width:90%" alt="一个UBB的PHP类" >/i',<br>            '/[limg]s*http(s?)://(S+)s*[/limg]/i',<br>            '/[rimg]s*http(s?)://(S+)s*[/rimg]/i',<br>            '/[cimg]s*http(s?)://(S+)s*[/cimg]/i',<br>            '/[img]s*([^/:]+)s*[/img]/i',<br>            '/[limg]s*([^/:]+)s*[/limg]/i',<br>            '/[rimg]s*([^/:]+)s*[/rimg]/i',<br>            '/[cimg]s*([^/:]+)s*[/cimg]/i',<br>            '/<img src="/static/imghwm/default1.png" data-src="s*(S+)s*" class="lazy" onload="return imgzoom(this,550);" onclick="javascript:window.open(this.src);" style="max-width:90%" alt="一个UBB的PHP类" >/i',<br>            '/[limg]s*(S+)s*[/limg]/i',<br>            '/[rimg]s*(S+)s*[/rimg]/i',<br>            '/[cimg]s*(S+)s*[/cimg]/i',<br>            ));<br>            $rpl_ary = array_merge($rpl_ary,array(<br>            '<img src="/static/imghwm/default1.png" data-src="http1://2" class="lazy" alt="一个UBB的PHP类" >',<br>            '<img src="/static/imghwm/default1.png" data-src="http1://2" class="lazy" align="left" alt="一个UBB的PHP类" >',<br>            '<img src="/static/imghwm/default1.png" data-src="http1://2" class="lazy" align="right" alt="一个UBB的PHP类" >',<br>            '<div align="center"><img src="/static/imghwm/default1.png" data-src="http1://2" class="lazy" alt="一个UBB的PHP类" ></div>',<br>            '<img src="/static/imghwm/default1.png" data-src="'.$image.'/1" class="lazy" . alt="一个UBB的PHP类" >',<br>            '<img src="/static/imghwm/default1.png" data-src="'.$image.'/1" class="lazy" . align="left" alt="一个UBB的PHP类" >',<br>            '<img src="/static/imghwm/default1.png" data-src="'.$image.'/1" class="lazy" . align="right" alt="一个UBB的PHP类" >',<br>            '<div align="center"><img src="/static/imghwm/default1.png" data-src="'.$image.'/1" class="lazy" . alt="一个UBB的PHP类" ></div>',<br>            '<img src="/static/imghwm/default1.png" data-src="1" class="lazy" alt="一个UBB的PHP类" >',<br>            '<img src="/static/imghwm/default1.png" data-src="1" class="lazy" align="left" alt="一个UBB的PHP类" >',<br>            '<img src="/static/imghwm/default1.png" data-src="1" class="lazy" align="right" alt="一个UBB的PHP类" >',<br>            '<div align="center"><img src="/static/imghwm/default1.png" data-src="1" class="lazy" alt="一个UBB的PHP类" ></div>',<br>            ));<br>        }<br>        if($this->font) {<br>            $reg_ary = array_merge($reg_ary,array(<br>            '/[br]/i',<br>            '/<b>s*(.+?)s*</b>/is',<br>            '/<i>s*(.+?)s*</i>/is',<br>            '/<u>s*(.+?)s*</u>/is',<br>            '/[s]s*(.+?)s*[/s]/is',<br>            '/[sub]s*(.+?)s*[/sub]/is',<br>            '/[sup]s*(.+?)s*[/sup]/is',<br>            '/[left]s*(.+?)s*[/left]/is',<br>            '/[right]s*(.+?)s*[/right]/is',<br>            '/<center>s*(.+?)s*</center>/is',<br>            '/[align=s*(left|center|right)]s*(.+?)s*[/align]/is',<br>            '/[size=s*([.|d])s*]s*(.*?)s*/is',<br>            '/[font=s*(.*?)s*]s*(.*?)s*[/font]/is',<br>            '/s*(.*?)s*/is',<br>            '/<ul>s*(<br>)?s*(.+?)s*</ul>/is',<br>            '/<ul style="max-width:90%">s*(<br>)?s*(.+?)s*</ul>/is',<br>            '/<ul style="list-style-type:(A|1|I)">s*(<br>)?s*(.+?)s*</ul>/is',<br>            '/<ul style="list-style-type:(S+?)">s*(<br>)?s*(.+?)s*</ul>/is',<br>            '/[li]s*(.+?)s*[/li]/is',<br>            ));<br>            $rpl_ary = array_merge($rpl_ary,array(<br>            '<br>',<br>            '<b>1</b>',<br>            '<i>1</i>',<br>            '<u>1</u>',<br>            '<s>1</s>',<br>            '<sub>1</sub>',<br>            '<sup>1</sup>',<br>            '<div align="left">1</div>',<br>            '<div align="right">1</div>',<br>            '<div align="center">1</div>',<br>            '<div align="1">2</div>',<br>            '<font size='1pt;"'>2</font>',<br>            '<font face="1">2</font>',<br>            '<font color="1">2</font>',<br>            '<ul>2</ul>',<br>            '<ol>2</ol>',<br>            '<ol type="1">3</ol>',<br>            '<ol start="1">3</ol>',<br>            '<li>1</li>',<br>            ));<br>        }<br>        if($this->element){<br>            $reg_ary = array_merge($reg_ary,array(<br>            '/s*(.+?)s*/i',<br>            '/s*(.+?)s*/i',<br>            '/s*(.+?)s*/i',<br>            '/s*(.+?)s*/i',<br>            '/[quote]s*(<br>)?s*(.+?)s*</td></tr></table></td></tr></table> <br>/is',<br>            '/[iframe]s*(.+?)s*[/iframe]/is',<br>            '/[iframe=s*(d+?)s*]s*(.+?)s*[/iframe]/is',<br>            ));<br>            $rpl_ary = array_merge($rpl_ary,array(<br>            '<a href="1" target="_blank"><img src="/static/imghwm/default1.png" data-src="2" class="lazy" border="0" alt="超链接地址" align="bottom">2</a> ',<br>            '<a href="1" target="_blank"><img src="/static/imghwm/default1.png" data-src="2" class="lazy" border="0" alt="超链接地址" align="bottom">1</a> ',<br>            '<a href="mailt1"><img src="/static/imghwm/default1.png" data-src="2" class="lazy" border="0" alt="电子邮件地址" align="bottom">2</a> ',<br>            '<a href="mailt1"><img src="/static/imghwm/default1.png" data-src="2" class="lazy" border="0" alt="电子邮件地址" align="bottom">1</a> ',<br>            '<table cellpadding="0" cellspacing="0" border="0" width="90%" align="center" style="max-width:90%"><tr><td><table width="100%" cellpadding="5" cellspacing="1" border="0"><tr><td width="100%">2</td></tr></table></td></tr></table>',<br>            '<iframe name="ifr1" frameborder="0" allowtransparency="true" scrolling="yes" width="100%" style="max-width:90%" marginwidth="0" marginheight="0" hspace="0" vspace="0">1</iframe><br><a href="1" target="_blank">如果你的浏览器不支持嵌入框,请点这里查看</a>',<br>            '<iframe 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>',<br>            ));<br>        }<br>        if($this->flash){<br>            $reg_ary = array_merge($reg_ary,array(<br>            '/[swf]s*(.+?)s*[/swf]/i',<br>            '/[swf=(d+),(d+)]s*(.+?)s*[/swf]/i'<br>            ));<br>            $rpl_ary = array_merge($rpl_ary,array(<br>            '<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>',<br>            '<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>'<br>            ));<br>        }<br>        if(sizeof($reg_ary)&&sizeof($rpl_ary))$str = preg_replace($reg_ary,$rpl_ary,$str);<br>        if($this->php) {<br>            $tmp = $str[0];<br>            for($i=0; $i<sizeof></sizeof>                ob_start();<br>                highlight_string(trim(strtr($ary[4][$i],array('''=>'>'," "=>" ","<br>"=>""))));<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]):'代码片段:').'

'.ob_get_contents().'
'.$str[$i+1];
                ob_end_clean();
            }
            $str = $tmp;
            unset($tmp);
        }
        Return $str;
    }
}
//上面就是完整的UBB函数
//下面是调用方法,
$u=new EncodeQ3boy();
echo $u->ubbEncode($_POST["ok"]);



Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn