把数据库里的颜色
显示在页面上的颜色两个字怎么读啊。

解决方案 »

  1.   

    这是discuz里将dizcuzcode恢复成html的操作,参考一下。
    <?php
    if(empty($searcharray['bbcode']) || empty($replacearray['bbcode'])) {
    $nests = 2;
    $searcharray['bbcode'] = array(
    "/\s*\[quote\][\n\r]*(.+?)[\n\r]*\[\/quote\]\s*/is",
    "/\[url\]\s*(www.|https?:\/\/|ftp:\/\/|gopher:\/\/|news:\/\/|telnet:\/\/|rtsp:\/\/|mms:\/\/){1}([^\[]+?)\s*\[\/url\]/ie",
    "/\[url=www.([^\[]+?)\](.+?)\[\/url\]/is",
    "/\[url=(https?|ftp|gopher|news|telnet|rtsp|mms){1}:\/\/([^\[]+?)\](.+?)\[\/url\]/is",
    "/\[email\]\s*([A-Za-z0-9\-_.]+)@([A-Za-z0-9\-_]+[.][A-Za-z0-9\-_.]+)\s*\[\/email\]/i",
    "/\[email=([A-Za-z0-9\-_.]+)@([A-Za-z0-9\-_]+[.][A-Za-z0-9\-_.]+)\](.+?)\[\/email\]/is",
    "/\[color=([^\[]+?)\]/i",
    "/\[size=([^\[]+?)\]/i",
    "/\[font=([^\[]+?)\]/i",
    "/\[align=([^\[]+?)\]/i"
    );
    $replacearray['bbcode'] = array(
    "<br><br><center><table border=\"0\" width=\"90%\" cellspacing=\"0\" cellpadding=\"0\"><tr><td>&nbsp;&nbsp;Quote:</td></tr><tr><td><table border=\"0\" width=\"100%\" cellspacing=\"1\" cellpadding=\"10\" bgcolor=\"".BORDERCOLOR."\"><tr><td width=\"100%\" bgcolor=\"".ALTBG2."\">\\1</td></tr></table></td></tr></table></center><br>",
    "urlcut('\\1\\2')",
    "<a href=\"http://www.\\1\" target=\"_blank\">\\2</a>",
    "<a href=\"\\1://\\2\" target=\"_blank\">\\3</a>",
    "<a href=\"mailto:\\1@\\2\">\\1@\\2</a>",
    "<a href=\"mailto:\\1@\\2\">\\3</a>",
    "<font color=\"\\1\">",
    "<font size=\"\\1\">",
    "<font face=\"\\1\">",
    "<p align=\"\\1\">",
    ); for($i = (count($searcharray['bbcode']) - 1) * $nests; $i >= 0; $i -= $nests) {
    for($j = $i; $j > $i - $nests; $j--) {
    $searcharray['bbcode'][$j] = $searcharray['bbcode'][(($i + 1) / $nests)];
    $replacearray['bbcode'][$j] = $replacearray['bbcode'][(($i + 1) / $nests)];
    }
    }}
    $message = preg_replace($searcharray['bbcode'], $replacearray['bbcode'], $message);$message = str_replace('[/color]', '</font>', $message);
    $message = str_replace('[/size]', '</font>', $message);
    $message = str_replace('[/font]', '</font>', $message);
    $message = str_replace('[/align]', '</p>', $message);$message = str_replace('', '<b>', $message);
    $message = str_replace('', '</b>', $message);
    $message = str_replace('', '<i>', $message);
    $message = str_replace('
    ', '</i>', $message);
    $message = str_replace('', '<u>', $message);
    $message = str_replace('
    ', '</u>', $message);
    $message = str_replace('[center]', '<center>', $message); //fix,plus: Add bbcode code
    $message = str_replace('[/center]', '</center>', $message);//fix,plus: Add bbcode code
    $message = str_replace('[fly]', '<marquee width="90%" behavior="alternate" scrollamount="3">', $message);
    $message = str_replace('[/fly]', '</marquee>', $message);
    $message = str_replace('[list]', '<ul>', $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('[*]', '<li>', $message);
    $message = str_replace('[/list]', '</ul></ol>', $message);if(preg_match("/\[hide=?\d*\].+?\[\/hide\]/is", $message)) {
    if(stristr($message, '[hide]') ) { //fix: code [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);
    }
    ?>