⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 func_adcode_content.php

📁 采用模块化设计,自由组合文章,软件,论坛等模块,安装方便快捷 模板支持Dreamweaver可视化编辑,创建风格更为容易,专业
💻 PHP
字号:
<?php

if (!defined('ROOT'))
    exit('Access Denied');
function adcode_content($con, $title = false)
{
    global $_annexs, $quick, $codes;
    $codes = array();
    $_annexs = $con['annex'] ? adcode_annex($title, $title ? $con['tid'] : $con['pid']) :
        array();
    $message = $con['content'];
    if ($con['f_ubb'])
    {
        $message = preg_replace("/\s*\[code\](.+?)\[\/code\]\s*/ies", "adcode_codedisp('\\1')",
            $message);
        $con['f_html'] or $message = html($message);
        $message = preg_replace("/\[em(\d+)\]/ies", "adcode_emdisp('\\1')", $message, 10);
        $codes['s'] = array("/\[url\]\s*(www.|https?:\/\/|ftp:\/\/|gopher:\/\/|news:\/\/|telnet:\/\/|rtsp:\/\/|mms:\/\/|callto:\/\/|bctp:\/\/|ed2k:\/\/|thunder:\/\/|synacast:\/\/){1}([^\[\"']+?)\s*\[\/url\]/ie",
            "/\[url=www.([^\[\"']+?)\](.+?)\[\/url\]/is", "/\[url=(https?|ftp|gopher|news|telnet|rtsp|mms|callto|bctp|ed2k|thunder|synacast){1}:\/\/([^\[\"']+?)\](.+?)\[\/url\]/is",
            "/\[email\]\s*([a-z0-9\-_.+]+)@([a-z0-9\-_]+[.][a-z0-9\-_.]+)\s*\[\/email\]/i",
            "/\[email=([a-z0-9\-_.+]+)@([a-z0-9\-_]+[.][a-z0-9\-_.]+)\](.+?)\[\/email\]/is",
            "/\[color=([#\w]+?)\]/i", "/\[size=(\d+?)\]/i", "/\[size=(\d+(\.\d+)?(px|pt|in|cm|mm|pc|em|ex|%)+?)\]/i",
            "/\[font=([^\[\<]+?)\]/i", "/\[align=(left|center|right|justify)\]/i", "/\[float=(left|right)\]/i",
            "/\[vid\](\S+?)\[\/vid\]/eis");
        $codes['r'] = array("adcode_cuturl('\\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 style=\"font-size: \\1\">", "<font face=\"\\1 \">", "<p align=\"\\1\">",
            "<span style=\"float: \\1;\">", "adcode_vid('\\1')");
        $codes['s'][] = "/\[table(?:=(\d{1,4}%?)(?:,([\(\)%,#\w ]+))?)?\]\s*(.+?)\s*\[\/table\]/ies";
        $codes['s'][] = "/\[table(?:=(\d{1,4}%?)(?:,([\(\)%,#\w ]+))?)?\]\s*(.+?)\s*\[\/table\]/ies";
        $codes['s'][] = "/\s*\[quote\][\n\r]*(.+?)[\n\r]*\[\/quote\]\s*/is";
        $codes['s'][] = "/\[backcolor=([#0-9a-z]{1,10})\]/is";
        $codes['s'][] = "/\[list=([aA1]?)\](.+?)\[\/list\]/is";
        $codes['r'][] = "adcode_parsetable('\\1', '\\2', '\\3')";
        $codes['r'][] = "adcode_parsetable('\\1', '\\2', '\\3')";
        $codes['r'][] = "<fieldset><legend><em>" . $GLOBALS['tpl']['寮曠敤'] .
            "</em></legend>\\1</fieldset>";
        $codes['r'][] = "<span style=\"background-color:\\1 \">";
        $codes['r'][] = "<ol type=\"\\1\">\\2</ol>";
        $codes['s2'] = array('[/color]', '[/size]', '[/font]', '[/align]', '[b]', '[/b]',
            '[sub]', '[/sub]', '[sup]', '[/sup]', '[strike]', '[/strike]', '[blockquote]',
            '[/blockquote]', '[hr]', '[/backcolor]', '[i]', '[/i]', '[u]', '[/u]', '[list]',
            '[li]', '[/li]', '[/list]', '[indent]', '[/indent]', '[/float]');
        $codes['r2'] = array('</font>', '</font>', '</font>', '</p>', '<strong>',
            '</strong>', '<sub>', '</sub>', '<sup>', '</sup>', '<strike>', '</strike>',
            '<blockquote>', '</blockquote>', '<hr />', '</span>', '<i>', '</i>', '<u>',
            '</u>', '<ul>', '<li>', '</li>', '</ul>', '<blockquote>', '</blockquote>',
            '</span>');
        $message = preg_replace($codes['s'], $codes['r'], $message);
        $message = str_replace($codes['s2'], $codes['r2'], $message);
        $message = preg_replace(array("/\[img\]\s*([^\[\<\r\n]+?)\s*\[\/img\]/ies", "/\[img=(\d{1,4})[x|\,](\d{1,4})\]\s*([^\[\<\r\n]+?)\s*\[\/img\]/ies"),
            array("adcode_bbcodeurl('\\1', '<img src=\"%s\" border=\"0\" onclick=\"zoom(this)\" onload=\"attachimg(this, \'load\')\" alt=\"\" />')",
            "adcode_bbcodeurl('\\3', '<img width=\"\\1\" height=\"\\2\" src=\"%s\" border=\"0\" alt=\"\" />')"),
            $message);
        $message = preg_replace("/\[a(\d+)\]/ies", "adcode_adisp('\\1')", $message);
        foreach ($_annexs as $val)
        {
            $message .= $val;
        }
        if (is_array($codes['code']))
        {
            foreach ($codes['code'] as $key => $html)
            {
                $message = str_replace($key, $html, $message);
            }
        }
        return $con['f_html'] ? $message : nl2br(str_replace(array("\t", '   ', '  '),
            array('&nbsp; &nbsp; &nbsp; &nbsp; ', '&nbsp; &nbsp;', '&nbsp;&nbsp;'), $message));
    } else
    {
        $con['f_html'] or $message = html($message);
        $message = preg_replace("/\[a(\d+)\]/ies", "adcode_adisp('\\1')", $message);
        foreach ($_annexs as $val)
        {
            $message .= $val;
        }
        return $con['f_html'] ? $message : nl2br(str_replace(array("\t", '   ', '  '),
            array('&nbsp; &nbsp; &nbsp; &nbsp; ', '&nbsp; &nbsp;', '&nbsp;&nbsp;'), $message));
    }
}
function adcode_cuturl($url)
{
    $length = 30;
    $urllink = "<a href=\"" . (substr(strtolower($url), 0, 4) == 'www.' ? "http://$url" :
        $url) . '" target="_blank">';
    if (strlen($url) > $length)
    {
        $url = substr($url, 0, intval($length * 0.5)) . ' ... ' . substr($url, -intval($length *
            0.3));
    }
    $urllink .= $url . '</a>';
    return $urllink;
}
function adcode_vid($url)
{
    return '<script language="javascript">ShowMedia(\'' . $url . '\')</script>';
}
function adcode_codedisp($code)
{
    global $codes;
    $key = '[' . uniqid() . ']';
    $codes['code'][$key] = '<fieldset><legend><em>' . $GLOBALS['tpl']['浠g爜'] .
        '</em></legend>' . html(str_replace('\\"', '"', preg_replace("/^[\n\r]*(.+?)[\n\r]*$/is",
        "\\1", $code))) . '</fieldset>';
    return $key;
}
function adcode_emdisp($d)
{
    return ($d > $GLOBALS['conf']['center'][6] || $d < 1) ? '[em' . $d . ']' :
        '<img src="./images/emotes/em' . $d . '.gif" border="0" />';
}
function adcode_adisp($d)
{
    global $_annexs;
    if (isset($_annexs[$d]))
    {
        $_t = $_annexs[$d];
        unset($_annexs[$d]);
        return $_t;
    } else
        return '[a' . $d . ']';
}
function adcode_parsetable($width, $bgcolor, $message)
{
    if (!preg_match("/^\[tr(?:=([\(\)%,#\w]+))?\]\s*\[td(?:=(\d{1,2}),(\d{1,2})(?:,(\d{1,4}%?))?)?\]/",
        $message) && !preg_match("/^<tr[^>]*?>\s*<td[^>]*?>/", $message))
    {
        return str_replace('\\"', '"', preg_replace("/\[tr(?:=([\(\)%,#\w]+))?\]|\[td(?:=(\d{1,2}),(\d{1,2})(?:,(\d{1,4}%?))?)?\]|\[\/td\]|\[\/tr\]/",
            '', $message));
    }
    $width = substr($width, -1) == '%' ? (substr($width, 0, -1) <= 98 ? intval($width) .
        '%' : '98%') : ($width <= 560 ? intval($width) . 'px' : '98%');
    return '<table cellspacing="0" class="t_table" ' . ($width == '' ? null :
        'style="width:' . $width . '"') . ($bgcolor ? ' bgcolor="' . $bgcolor . '">' :
        '>') . str_replace('\\"', '"', preg_replace(array("/\[tr(?:=([\(\)%,#\w]+))?\]\s*\[td(?:=(\d{1,2}),(\d{1,2})(?:,(\d{1,4}%?))?)?\]/ie",
        "/\[\/td\]\s*\[td(?:=(\d{1,2}),(\d{1,2})(?:,(\d{1,4}%?))?)?\]/ie", "/\[\/td\]\s*\[\/tr\]/i"),
        array("adcode_parsetrtd('\\1', '\\2', '\\3', '\\4')", "adcode_parsetrtd('td', '\\1', '\\2', '\\3')",
        '</td></tr>'), $message)) . '</table>';
}
function adcode_parsetrtd($bgcolor, $colspan, $rowspan, $width)
{
    return ($bgcolor == 'td' ? '</td>' : '<tr' . ($bgcolor ? ' bgcolor="' . $bgcolor .
        '"' : '') . '>') . '<td' . ($colspan > 1 ? ' colspan="' . $colspan . '"' : '') . ($rowspan >
        1 ? ' rowspan="' . $rowspan . '"' : '') . ($width ? ' width="' . $width . '"' :
        '') . '>';
}
function adcode_bbcodeurl($url, $tags)
{
    if (!preg_match("/<.+?>/s", $url))
    {
        if (!in_array(strtolower(substr($url, 0, 6)), array('http:/', 'https:', 'ftp://',
            'rtsp:/', 'mms://')))
        {
            $url = 'http://' . $url;
        }
        return str_replace(array('file=out', 'file=fra_mark'), array('', ''), sprintf($tags,
            $url, addslashes($url)));
    } else
    {
        return '&nbsp;' . $url;
    }
}
function adcode_annex($title, $id)
{
    $where = $title ? 'tid' : 'pid';
    $db = db::getinstance();
    $annexa = array();
    $result = $db->query("select * from " . PF . "center_annexs where ids='$id' && idt='" .
        $where . "'");
    while ($row = $db->fetch_array($result))
    {
        switch ($row['type'])
        {
            case 1:
                $func = 'adcode_a1';
                break;
            case 2:
                $func = 'adcode_a2';
                break;
            case 3:
                $func = 'adcode_a3';
                break;
        }
        $annexa[$row['id']] = $func($row);
    }
    return $annexa;
}
function adcode_a1(&$c)
{
    $msid = uniqid();
    $imgs = array('gif', 'jpg', 'jpe', 'jpeg', 'png', 'bmp', 'psd');
    $vids = array('swf', 'mov', 'qt', 'wmv', 'wmp', 'wm', 'avi', 'mp4', 'mpg',
        'mpeg', 'm3u', 'pls', 'wvx', 'wax', 'wmx', 'asf', 'wma', 'asx', 'wav', 'mp3',
        'mpa', 'mp2', 'm1a', 'm2a', 'aac', 'rm', 'ram', 'rmvb', 'rpm', 'amr', '3gp',
        '3gpp', '3g2', '3gp2', 'rt', 'rp', 'smi', 'smil', 'ra');
    if (in_array($c['filetype'], $imgs))
    {
        return '<a href="' . UPPATH . '/softs/' . $c['con'] .
            '" class="thickbox"><img id="' . $msid .
            '" onload="javascript:showImage(this.id);" src="' . UPPATH . '/softs/' . $c['con'] .
            '" alt=""/></a>';
    } else
        if (in_array($c['filetype'], $vids))
        {
            return '<script language="javascript">ShowMedia(\'' . UPPATH . '/softs/' . $c['con'] .
                '\')</script>';
        } else
        {
            return '<div class="_a1">' . $GLOBALS['tpl']['鏂囦欢'] .
                ':<a href="?mod=center&file=fra_apost_1&id=' . $c['id'] . '" target="_blank">' .
                $GLOBALS['tpl']['鐐瑰嚮杩欓噷涓嬭浇'] . '</a>,' . $GLOBALS['tpl']['宸蹭笅杞

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -