📄 func_adcode_content.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(' ', ' ', ' '), $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(' ', ' ', ' '), $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 ' ' . $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 + -