<?function htmlencode($fstring)
{
if ($fstring)
 {
 $fstring = str_replace(">","&gt;",$fstring);
 $fstring = str_replace("<","&lt;",$fstring);
 $fstring = str_replace(chr(32),"&nbsp;",$fstring);
 $fstring = str_replace(chr(34),"&quot;",$fstring);
 $fstring = str_replace(chr(39),"&#39;",$fstring);
 $fstring = str_replace(chr(13),"",$fstring);
 $fstring = str_replace(chr(10).chr(10),"</p><p>",$fstring);
 $fstring = str_replace("\n","<br>",$fstring);
 return $fstring;
 }
}function htmlsc($fstring)
{
if ($fstring)
    {
     $fstring = str_replace("|","",$fstring);
     $fstring = htmlencode($fstring);
     return $fstring;
    }
}
                 //内容
function ubb($message, $is_html="0",$is_ubb="1",$is_img="1",$is_aut="1",$is_emot="1")
{
// is_html是否支持html
        global $USERID,$topicid,$is_contenthide;
$bordercolor = "";  //code的边颜色
$thisbg = "";  //code的背景颜色
        if($is_html != "1") {
                $message = htmlspecialchars($message);
        }        $message = nl2br($message);
        $message = str_replace("\t", "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;", $message);
        $message = str_replace("   ", "&nbsp;&nbsp;&nbsp;", $message);
        $message = str_replace("  ", "&nbsp;&nbsp;", $message);        if($is_emot != "0") {
                        for($i=0;$i<63;$i++)
                        {
                            strlen($i)<2?$tmpcode = "em0".$i:$tmpcode = "em".$i;
                            $mmfile = $i+1;
                            strlen($mmfile)<2?$mmfile = "em0".$mmfile:$mmfile = "em".$mmfile;
                            $message = str_replace("[".$tmpcode."]", "<img src=\"./images/emot/$mmfile.gif\" align=\"absmiddle\" border=0>",$message);
                        }
        }        if($is_ubb != "0") {
                $message =str_replace("","<u>",$message);
                $message =str_replace("
","</u>",$message);
                $message =str_replace("","<b>",$message);
                $message =str_replace("","</b>",$message);                $message =str_replace("","<i>",$message);
                $message =str_replace("
","</i>",$message);                $message = eregi_replace("\\[fly\\]([^\\[]*)\\[/fly\\]","<marquee width=\"90%\" behavior=\"alternate\" scrollamount=\"3\">\\1</marquee>", $message);
                $message = eregi_replace("\\[move\\]([^\\[]*)\\[/move\\]","<marquee scrollamount=\"3\">\\1</marquee>", $message);
                $message = preg_replace("/\[quote\](.+?)\[\/quote\]/is","<table cellpadding=0 cellspacing=0 border=0 WIDTH=94% bgcolor=#000000 align=center><tr><td><table width=100% cellpadding=5 cellspacing=1 border=0><TR><TD BGCOLOR=#EFF3F9>引用:<br>\\1</table></table>", $message);
                $message = preg_replace("/\[code\](.+?)\[\/code\]/is","<center><table border=\"0\" width=\"90%\" cellspacing=\"0\" cellpadding=\"0\"><tr class=\"tablerow\"><td>&nbsp;&nbsp;代码:</td></tr><tr class=\"tablerow\"><td><table border=\"0\" width=\"100%\" cellspacing=\"1\" cellpadding=\"10\" bgcolor=\"$bordercolor\"><tr class=\"tablerow\"><td width=\"100%\" bgcolor=\"$thisbg\"><pre>\\1</pre></td></tr></table></td></tr></table></center>", $message);
$message = preg_replace("/\[light\](.+?)\[\/light\]/is","<span style=\"behavior:url(./images/ubb/font.htc)\">\\1</span>", $message);
                $message = preg_replace("/\[SOUND\](.+?)\[\/SOUND\]/is","<bgsound src=\\1 loop=-1><a href=\\1 target=_blank><IMG SRC=./images/mid.gif border=0 align=\"absmiddle\" alt=背景音乐></a>",$message);                $message = str_replace("[list=1]","<ol type=1>",$message);
                $message = str_replace("[list=a]","<ol type=A>",$message);
                $message = str_replace("[list=A]","<ol type=A>",$message);
                $message = str_replace("[/list=1]","</ol>",$message);
                $message = str_replace("[/list=a]","</ol>",$message);
                $message = str_replace("[/list=A]","</ol>",$message);
                $message = str_replace("[*]","<li>",$message);
                $message = eregi_replace("\\[list\\]([^\\[]*)\\[/list\\]","<ul type=square>\\1</ul>", $message);
                $message = eregi_replace("\\[color=([^\\[]*)\\]([^\\[]*)\\[/color\\]","<font color=\"\\1\">\\2</font>",$message);
                $message = eregi_replace("\\[size=([^\\[]*)\\]([^\\[]*)\\[/size\\]","<font size=\"\\1\">\\2</font>",$message);
                $message = eregi_replace("\\[font=([^\\[]*)\\]([^\\[]*)\\[/font\\]","<font face=\"\\1\">\\2</font>",$message);
                $message = eregi_replace("\\[align=([^\\[]*)\\]([^\\[]*)\\[/align\\]","<p align=\"\\1\">\\2</p>",$message);
                
                $patterns = array();
                $replacements = array();
                $patterns[0] = "#\[url\]([a-z]+?://){1}(.*?)\[/url\]#si";
                $replacements[0] = '<a href="\1\2" target="_blank">\1\2</a>';
                $patterns[1] = "#\[url\](.*?)\[/url\]#si";
                $replacements[1] = '<a href="http://\1" target="_blank">\1</a>';
                $patterns[2] = "#\[url=([a-z]+?://){1}(.*?)\](.*?)\[/url\]#si";
                $replacements[2] = '<a href="\1\2" target="_blank">\3</a>';
                $patterns[3] = "#\[url=(.*?)\](.*?)\[/url\]#si";
                $replacements[3] = '<a href="http://\1" target="_blank">\2</a>';
                $patterns[4] = "/\[email\]([^\[]*)\[\/email\]/is";
                $replacements[4] = "<a href=\"mailto:\\1\">\\1</a>";
                $patterns[5] = "/\[email=([^\[]*)\](.+?)\[\/email\]/is";
                $replacements[5] = "<a href=\"mailto:\\1\">\\2</a>";
                $patterns[6] = "/(\[shadow=)(\S+?)(\,)(.+?)(\,)(.+?)(\])(.+?)(\[\/shadow\])/is";
                $replacements[6] = "<table width=\\2 style=\"filter:shadow(color=\\4, direction=\\6 ,strength=2)\">\\8</table>";
                $patterns[7] = "/(\[glow=)(\S+?)(\,)(.+?)(\,)(.+?)(\])(.+?)(\[\/glow\])/is";
                $replacements[7] = "<table width=\\2 style=\"filter:glow(color=\\4, strength=\\6)\">\\8</table>";
                $patterns[8] = "/\[rar\](.+?)\[\/rar\]/is";
                $replacements[8] = "<a href=\"./upfiles/\\1\" target=_blank><img src=./images/attachicon/rar.gif border=0 align=absmiddle>点击下载附件</a>";
                $patterns[9] = "/\[zip\](.+?)\[\/zip\]/is";

解决方案 »

  1.   

    $replacements[9] = "<a href=\"./upfiles/\\1\" target=_blank><img src=./images/attachicon/zip.gif border=0 align=absmiddle>点击下载附件</a>";
                    $patterns[10] = "/\[text\](.+?)\[\/text\]/is";
                    $replacements[10] = "<a href=\"./upfiles/\\1\" target=_blank><img src=./images/attachicon/text.gif border=0 align=absmiddle>点击下载附件</a>";
                    $patterns[11] = "/\[uploadimg\](.+?)\[\/uploadimg\]/is";
                    $replacements[11] = "<br><a href=\"./upfiles/\\1\" target=_blank><img src=\"./upfiles/\\1\" border=0 align=absmiddle target=_blank alt=\"点击查看\" onload=\"javascript:if(this.width>screen.width-250)this.width=screen.width-250\"></a><br>";
                    $patterns[12] = "/\[uploadmid\](.+?)\[\/uploadmid\]/is";
                    $replacements[12] = "<a href=\"./upfiles/\\1\" target=_blank><img src=./images/attachicon/av.gif border=0 align=absmiddle>点击打开附件</a>";
                    $message = preg_replace($patterns, $replacements, $message); if(!empty($topicid))
                    if(preg_match("/\[hide=?\d*\].+?\[\/hide\]/is", $message)) 
    {
    if(strstr($message, '[hide]')) 
    {
    //$query = $db->query("SELECT COUNT(*) FROM $table_posts WHERE tid='$tid' AND author='$discuz_user'");
    if($ismoderator || $db->result($query, 0)) 
    {
    $message = preg_replace("/\[hide\]\s*(.+?)\s*\[\/hide\]/is", "<span class=\"bold\">Below Message for Repliers</span><br>==============================<br><br>\\1<br><br>==============================", $message);

    else 
    {
    $message = preg_replace("/\[hide\](.+?)\[\/hide\]/is", "<b>**** Hidden to Non-Reply Visitors *****</b>", $message);
    }
    }
    $message = preg_replace("/\[hide=(\d+)\]\s*(.+?)\s*\[\/hide\]/ies", "credithide(\\1,'\\2')", $message);
    }
                    /*
                    if(!empty($topicid))
                    if(eregi("[hide]", $message) && eregi("[/hide]", $message) && $is_contenthide <> 1)
                    {
                            $query = mysql_query("SELECT userid FROM bbs_forum WHERE mtid=$topicid");
                            $showed = 0;
                            while($result = mysql_fetch_array($query))
                                    if($result[userid] == $USERID)
                                    {
                                            $message = eregi_replace("\\[hide\\]([^\\[]*)\\[/hide\\]","\\1", $message);
                                            $showed = 1;
                                            break;
                                    }
                            if(!$showed) {
                                    $message = eregi_replace("\\[hide\\]([^\\[]*)\\[/hide\\]","<b>**** 隐藏信息 跟贴后才能显示 *****</b>", $message);
                            }
                    }*/
            }        if($is_img == "1")
            {
                    $message = preg_replace("/\[img\]\s*(\S+?)\s*\[\/img\]/is","<A HREF=\\1 TARGET=_blank title=新窗口打开图片><img src=\\1 border=0 onload=\"javascript:if(this.width>screen.width-250)this.width=screen.width-250\"></a><br><br>", $message);
                    $message = preg_replace("/\[img=(\d+?)x(\d+?)\]\s*([A-Za-z0-9\/\-_.~&?=@#:;]+)\s*\[\/img\]/is","<a href=\"\\3\" target=\"_blank\"><img width=\"\\1\" height=\"\\2\" src=\"http://\\3\" border=\"0\"></a>", $message);
            }
            if($is_aut == "1") {
                    $message = preg_replace("/(\[swf\])\s*(\S+?\.swf)\s*(\[\/swf\])/is","<PARAM NAME=PLAY VALUE=TRUE><PARAM NAME=LOOP VALUE=TRUE><PARAM NAME=QUALITY VALUE=HIGH><embed src=\"\\2\" quality=high pluginspage=\"http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash\" type=\"application/x-shockwave-flash\"></embed>", $message);
                    $message = preg_replace("/(\[FLASH=)(\S+?)(\,)(\S+?)(\])(\S+?)(\[\/FLASH\])/is","<OBJECT CLASSID=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" WIDTH=\\2 HEIGHT=\\4><PARAM NAME=MOVIE VALUE=\\6><PARAM NAME=PLAY VALUE=TRUE><PARAM NAME=LOOP VALUE=TRUE><PARAM NAME=QUALITY VALUE=HIGH><EMBED SRC=\\6 WIDTH=\\2 HEIGHT=\\4 PLAY=TRUE LOOP=TRUE QUALITY=HIGH></EMBED></OBJECT>", $message);
                    $message = preg_replace("/(\[wmv=)(\S+?)(\,)(\S+?)(\])(\S+?)(\[\/wmv\])/is", "<EMBED src=\\6 HEIGHT=\"\\4\" WIDTH=\"\\2\" AutoStart=0 ></EMBED>", $message);
                    $message = preg_replace("/\[mid\]\s*(\S+?)\s*\[\/mid\]/is", "<EMBED src=\\1 HEIGHT=\"45\" WIDTH=\"314\" AutoStart=0 ></EMBED>", $message);
                    $message = preg_replace("/\[ra\]\s*(\S+?)\s*\[\/ra\]/is", "
      <object classid=\"clsid:CFCDAA03-8BE4-11CF-B84B-0020AFBBCCFA\" id=\"RAOCX\" width=\"253\" height=\"60\">
        <param name=\"_ExtentX\" value=\"6694\">
        <param name=\"_ExtentY\" value=\"1588\">
        <param name=\"AUTOSTART\" value=\"0\">
        <param name=\"SHUFFLE\" value=\"0\">
        <param name=\"PREFETCH\" value=\"0\">
        <param name=\"NOLABELS\" value=\"0\">
        <param name=\"SRC\" value=\"\\1\">
        <param name=\"CONTROLS\" value=\"StatusBar,ControlPanel\">
        <param name=\"LOOP\" value=\"0\">
        <param name=\"NUMLOOP\" value=\"0\">
        <param name=\"CENTER\" value=\"0\">
        <param name=\"MAINTAINASPECT\" value=\"0\">
        <param name=\"BACKGROUNDCOLOR\" value=\"#000000\">
        <embed src=\"\\1\" width=\"253\" autostart=\"true\" height=\"60\">
        </embed>
      </object>", $message);
                    $message = preg_replace("/(\[rm=)(\S+?)(\,)(\S+?)(\])(\S+?)(\[\/rm\])/is", "
      <object classid=clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA height=\\4 id=Player width=\\2 VIEWASTEXT>
        <param name=\"_ExtentX\" value=\"12726\">
        <param name=\"_ExtentY\" value=\"8520\">
        <param name=\"AUTOSTART\" value=\"0\">
        <param name=\"SHUFFLE\" value=\"0\">
        <param name=\"PREFETCH\" value=\"0\">
        <param name=\"NOLABELS\" value=\"0\">
        <param name=\"CONTROLS\" value=\"ImageWindow\">
        <param name=\"CONSOLE\" value=\"_master\">
        <param name=\"LOOP\" value=\"0\">
        <param name=\"NUMLOOP\" value=\"0\">
        <param name=\"CENTER\" value=\"0\">
        <param name=\"MAINTAINASPECT\" value=\"\\6\">
        <param name=\"BACKGROUNDCOLOR\" value=\"#000000\">
      </object><br>
      <object classid=clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA height=32 id=Player width=\\2 VIEWASTEXT>
        <param name=\"_ExtentX\" value=\"18256\">
        <param name=\"_ExtentY\" value=\"794\">
        <param name=\"AUTOSTART\" value=\"-1\">
        <param name=\"SHUFFLE\" value=\"0\">
        <param name=\"PREFETCH\" value=\"0\">
        <param name=\"NOLABELS\" value=\"0\">
        <param name=\"CONTROLS\" value=\"controlpanel\">
        <param name=\"CONSOLE\" value=\"_master\">
        <param name=\"LOOP\" value=\"0\">
        <param name=\"NUMLOOP\" value=\"0\">
        <param name=\"CENTER\" value=\"0\">
        <param name=\"MAINTAINASPECT\" value=\"0\">
        <param name=\"BACKGROUNDCOLOR\" value=\"#000000\">
        <param name=\"SRC\" value=\"\\6\">
      </object>", $message);        }
            $message = preg_replace("/(?<!\"|=)(http|ftp|telnet):\/\/([A-Za-z0-9\/\-_.~&?=@#:;]+)/is","<a href=\"\\1://\\2\" target=\"_blank\">\\1://\\2</a>",$message);
            //$message = preg_replace("/([A-Za-z0-9\-_.]+)@([A-Za-z0-9\-_.]+)/is","<a href=\"mailto:\\1@\\2\">\\1@\\2</a>",$message);
           // $message = preg_replace("/(?<!mailto:)([A-Za-z0-9\-_.]+)@([A-Za-z0-9\-_.]+)/is","<a href=\"mailto:\\1@\\2\">\\1@\\2</a>",$message);        return $message;
    }?>