Find this useful? Enter your email to receive occasional updates for securing PHP code.

Signing you up...

Thank you for signing up!

PHP Decode

<?php // $OOO0O0O00=__FILE__;$OOO000000=urldecode('%74%68%36%73%62%65%68%71%6c%61%34%63%..

Decoded Output download


ini_set('date.timezone','Asia/Shanghai');
error_reporting(0);
header('Access-Control-Allow-Origin: * ');
function C($key,$value=null){
static $_config = array();
$args = func_num_args();
if($args == 1){
if(is_string($key)){
return isset($_config[$key])?$_config[$key]:null;
}
if(is_array($key)){
if(array_keys($key) !== range(0,count($key) -1)){
$_config = array_merge($_config,$key);
}else{
$ret = array();
foreach ($key as $k) {
$ret[$k] = isset($_config[$k])?$_config[$k]:null;
}
return $ret;
}
}
}else{
if(is_string($key)){
$_config[$key] = $value;
}else{
halt('');
}
}
return null;
}
function W($name,$data = array()){
$fullName = $name.'Widget';
if(!class_exists($fullName)){
halt('Widget '.$name.'');
}
$widget = new $fullName();
$widget->invoke($data);
}
function halt($str,$display=false){
Log::fatal($str.' debug_backtrace:'.var_export(debug_backtrace(),true));
header('Content-Type:text/html; charset=utf-8');
if($display){
echo '<pre>';
debug_print_backtrace();
echo '</pre>';
}
echo $str;
exit;
}
function M(){
$dbConf = C(array('DB_HOST','DB_PORT','DB_USER','DB_PWD','DB_NAME','DB_CHARSET'));
return DB_mysql_php7::getInstance($dbConf);
}
function DC($site='bolin',$cat='default',$type='txt'){
$scriptName = $_SERVER['SCRIPT_NAME'];
$directory = dirname($scriptName);
if ($directory == '/') {
$directory = '';
}
$config = array('cacheDir'=>dirname('index.php').$directory.'/cache','type'=>$type,'cat'=>$cat,'site'=>$site);
return dataCache::getInstance($config);
}
function API($config=''){
if(empty($config))
{
$config = array(
'appid'=>'20240718001',
'appsecret'=>'EX5pgz2AlbxjENnW83cxsOXoijSuH8IK',
'appip'=>''
);
}
return ApiHelper::getInstance($config);
}
function genVerify($data)
{
ksort($data);
$items = array();
foreach ($data as $key =>$value) {
$items[] = $key .'='.$value;
}
return join('&',$items);
}
function getSign($data,$key,$key_con)
{
$str = genVerify($data);
return strtoupper(md5($str.'&'.$key.'='.$key_con));
}
function Now()
{
return Date('Y-m-d H:i:s');
}
function get_year($time='')
{
if($time){
$year = date('Y',$time);
}else{
$year = date('Y');
}
return $year;
}
function get_month($time='')
{
if($time){
$month = date('n',$time);
}else{
$month = date('n');
}
return $month;
}
function get_day($time='')
{
if($time){
$day = date('j',$time);
}else{
$day = date('j');
}
return $day;
}
function get_week($date='')
{
$weekarray = array('','','','','','','');
if($date){
$week = $weekarray[date('w',strtotime($date))];
}else{
$week = $weekarray[date('w')];
}
return $week;
}
function get_hour($time='')
{
if($time){
$hour = date('G',$time);
}else{
$hour = date('G');
}
return $hour;
}
function get_minute($time='')
{
if($time){
$minute = date('i',$time);
}else{
$minute = date('i');
}
return (int)$minute;
}
function base64url_encode($data)
{
return rtrim(strtr(base64_encode($data),'+/','-_'),'=');
}
function base64url_decode($data)
{
return base64_decode(strtr($data,'-_','+/'));
}
function tojson($array) {
return json_encode($array,JSON_UNESCAPED_UNICODE);
}
function dump($var,$echo = true,$label = null,$strict = true) {
$label = ($label === null) ?'': rtrim($label) .' ';
if (!$strict) {
if (ini_get('html_errors')) {
$output = print_r($var,true);
$output = '<pre>'.$label .htmlspecialchars($output,ENT_QUOTES) .'</pre>';
}else {
$output = $label .print_r($var,true);
}
}else {
ob_start();
var_dump($var);
$output = ob_get_clean();
if (!extension_loaded('xdebug')) {
$output = preg_replace("/\]\=\>
(\s+)/m",'] => ',$output);
$output = '<pre>'.$label .htmlspecialchars($output,ENT_QUOTES) .'</pre>';
}
}
if ($echo) {
echo($output);
return null;
}else {
return $output;
}
}
function getClientIP() {
static $ip = NULL;
if ($ip !== NULL) {
return $ip;
}
if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$arr = explode(',',$_SERVER['HTTP_X_FORWARDED_FOR']);
$pos = array_search('unknown',$arr);
if (false !== $pos)
unset($arr[$pos]);
$ip = trim($arr[0]);
}elseif (isset($_SERVER['HTTP_CLIENT_IP'])) {
$ip = $_SERVER['HTTP_CLIENT_IP'];
}elseif (isset($_SERVER['REMOTE_ADDR'])) {
$ip = $_SERVER['REMOTE_ADDR'];
}
$ip = (false !== ip2long($ip)) ?$ip : '0.0.0.0';
return $ip;
}
function getMillisecond() {
list($s1,$s2) = explode(' ',microtime());
return (float) sprintf('%.0f',(floatval($s1) +floatval($s2)) * 1000);
}
function createFolders($dir) {
return is_dir($dir) or ( createFolders(dirname($dir)) and mkdir($dir,0777));
}
function get($name,$default=null) {
if(isset($_GET[$name])){
$value = filterWords($_GET[$name]);
}else{
$value = $default;
}
return $value;
}
function post($name,$default=null) {
if(isset($_POST[$name])){
$value = filterWords($_POST[$name]);
return $value;
}else{
return $default;
}
}
function request($name,$default=null) {
if(isset($_REQUEST[$name])){
$value = filterWords($_REQUEST[$name]);
return $value;
}else{
return $default;
}
}
function filterWords($str)
{
$farr = array(
"/<(\/?)(script|i?frame|style|html|body|title|link|meta|object|\?|\%)([^>]*?)>/isU",
"/(<[^>]*)on[a-zA-Z]+\s*=([^>]*>)/isU",
"/select|insert|update|delete|\'|\/\*|\*|\.\.\/|\.\/|union|into|load_file|outfile|dump/is"
);
$str = preg_replace($farr,'',$str);
return $str;
}
function getUrlString($name) {
$value = filter_input(INPUT_GET,$name,FILTER_SANITIZE_URL);
if ($value) {
return $value;
}else {
return null;
}
}
function getInteger($name,$default=null) {
if(isset($_REQUEST[$name])){
$value = $_REQUEST[$name];
if (!is_numeric($value)) {
return $default;
}else {
return intval($value);
}
}else{
return $default;
}
}
function getDouble($name,$default=null) {
if(isset($_REQUEST[$name])){
$value = $_REQUEST[$name];
if (!is_numeric($value)) {
return $default;
}else {
return (double)$value;
}
}else{
return $default;
}
}
function getBasePath() {
$sitePath = dirname($_SERVER['SCRIPT_NAME']);
if ($sitePath == '/'||$sitePath == "\") {
$sitePath = '';
}
return $sitePath;
}
function getBaseURL(){
return getBasePath();
}
function getFullURL() {
$pageURL = 'http://';
$sitePath = getBasePath();
$host = $_SERVER['HTTP_HOST'];
$port = $_SERVER['SERVER_PORT'];
if ($port != '80') {
$pageURL .= $host .$sitePath;
}else {
$pageURL .= str_replace(':80','',$host) .$sitePath;
}
return $pageURL;
}
function getHost() {
return 'http://'.$_SERVER['HTTP_HOST'];
}
function getProjectURL() {
$sysPath = dirname(dirname('index.php'));
$cwd = getcwd();
$filepath = str_replace($sysPath,'',$cwd);
$url = str_replace($filepath,'',getFullURL());
return $url;
}
function isCapitalLetter($c) {
if (preg_match('/^[A-Z]+$/',$c)) {
return true;
}else {
return false;
}
}
function objectToArray($obj) {
$_arr = is_object($obj) ?get_object_vars($obj) : $obj;
foreach ($_arr as $key =>$val) {
$val = (is_array($val)) ||is_object($val) ?objectToArray($val) : $val;
$arr[$key] = $val;
}
return $arr;
}
function session($name,$value = '') {
$prefix = 'slomi_';
if (''=== $value) {
if (0 === strpos($name,'[')) {
if ('[pause]'== $name) {
session_write_close();
}elseif ('[start]'== $name) {
session_start();
}elseif ('[destroy]'== $name) {
$_SESSION = array();
session_unset();
session_destroy();
}elseif ('[regenerate]'== $name) {
session_regenerate_id();
}
}elseif (0 === strpos($name,'?')) {
$name = substr($name,1);
if ($prefix) {
return isset($_SESSION[$prefix][$name]);
}else {
return isset($_SESSION[$name]);
}
}elseif (is_null($name)) {
if ($prefix) {
unset($_SESSION[$prefix]);
}else {
$_SESSION = array();
}
}elseif ($prefix) {
return $_SESSION[$prefix][$name];
}else {
return $_SESSION[$name];
}
}elseif (is_null($value)) {
if ($prefix) {
unset($_SESSION[$prefix][$name]);
}else {
unset($_SESSION[$name]);
}
}else {
if ($prefix) {
if (!is_array($_SESSION[$prefix])) {
$_SESSION[$prefix] = array();
}
$_SESSION[$prefix][$name] = $value;
}else {
$_SESSION[$name] = $value;
}
}
}
function slomi_cookie($name,$value = '',$expire = '86400',$path = '/',$domain = null)
{
@session_id($_COOKIE['PHPSESSID']);
@session_start();
if (isset($_SESSION[$name])&&empty($value)&&!is_null($value))
{
return $_SESSION[$name];
}
if (empty($value)) {
if (is_null($value)) {
if (isset($_COOKIE[$name])) {
setcookie($name,$value,time()-3600,$path,$domain);
unset($_COOKIE[$name]);
unset($_SESSION[$name]);
return true;
}
}
$value = isset($_COOKIE[$name]) ?$_COOKIE[$name] : null;
$value = strcode($value,'DECODE');
return unserialize($value);
}
$_SESSION[$name] = $value;
$expire = is_null($expire) ?$expire : time() +$expire;
$value  = serialize($value);
$value = strcode($value);
return setcookie($name,$value,$expire,$path,$domain);
}
function cookie($name,$value = '',$option = null) {
$config = array('prefix'=>'',
'expire'=>'36000',
'path'=>'.',
'domain'=>null,
);
if (!empty($option)) {
if (is_numeric($option))
$option = array('expire'=>$option);
elseif (is_string($option))
parse_str($option,$option);
$config = array_merge($config,array_change_key_case($option));
}
if (is_null($name)) {
if (empty($_COOKIE))
return;
$prefix = empty($value) ?$config['prefix'] : $value;
if (!empty($prefix)) {
foreach ($_COOKIE as $key =>$val) {
if (0 === stripos($key,$prefix)) {
setcookie($key,'',time() -3600,$config['path'],$config['domain']);
unset($_COOKIE[$key]);
}
}
}
return;
}
$name = $config['prefix'] .$name;
if (''=== $value) {
return isset($_COOKIE[$name]) ?$_COOKIE[$name] : null;
}else {
if (is_null($value)) {
setcookie($name,'',time() -3600,$config['path'],$config['domain']);
unset($_COOKIE[$name]);
}else {
$expire = !empty($config['expire']) ?time() +intval($config['expire']) : 0;
setcookie($name,$value,$expire,$config['path'],$config['domain']);
$_COOKIE[$name] = $value;
}
}
}
function strcode($string,$action = 'ENCODE',$hash = 'bolin') 
{
if(is_array($string))
{
$string = json_encode($string);
}
$action != 'ENCODE'&&$string = base64url_decode($string);
$code = '';
$key = md5('slomi'.$hash);
$keylen = strlen($key);
$strlen = strlen($string);
for ($i = 0;$i <$strlen;$i ++) {
$k = $i %$keylen;
$code .= $string[$i] ^$key[$k];
}
$code = ($action != 'DECODE'?base64url_encode($code) : $code);
if($action == 'DECODE')
{
$arr = json_decode($code);
if(is_array($arr))
{
$code = $arr;
}
}
return $code;
}
function strtoken($string,$action = 'ENCODE',$hash = '[email protected]') 
{
if($action=='ENCODE')
{
if(is_array($string))
{
$string = json_encode($string);
}
$md5 = md5(md5($string).$hash);
$token = strcode($string.'^'.$md5);
return $token;
}
else
{
$string = strcode($string,'DECODE');
$arr = explode('^',$string);
$md5 = md5(md5($arr[0]).$hash);
if($md5==$arr[1])
{
$temp = analyJson($arr[0]);
if(is_array($temp))
{
$arr[0] = analyJson($arr[0]);
}
return $arr[0];
}
else
{
return false;
}
}
}
function analyJson($json_str)
{
$res = json_decode($json_str,true);
$error = json_last_error();
if (!empty($error)){
return FALSE;
}
return $res;
}
function sha256($data,$rawOutput = false)
{
if (!is_scalar($data)) {
return false;
}
$data = (string)$data;
$rawOutput = !!$rawOutput;
return hash('sha256',$data,$rawOutput);
}
function parseUrlParams($query){
$queryParts = explode('&',$query);
$params = array();
foreach ($queryParts as $param) 
{
$item = explode('=',$param);
$params[$item[0]] = $item[1];
}
return $params;
}
function encodePassword($original){
$encoder = md5(base64_encode($original.'_slomi'));
return $encoder;
}
function curlGet($url,$data=''){
$ch = curl_init();
$header = 'Accept-Charset: utf-8';
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_CUSTOMREQUEST,'POST');
curl_setopt($curl,CURLOPT_HTTPHEADER,$header);
curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)');
curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1);
curl_setopt($ch,CURLOPT_AUTOREFERER,1);
curl_setopt($ch,CURLOPT_POSTFIELDS,$data);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
$temp = curl_exec($ch);
return $temp;
}
function curlPost($url,$data='',$header=''){
if($header==''){
$header = array('Content-Type: application/json; charset=utf-8','Accept:application/json;charset=utf-8','Content-Length: '.strlen($data));
}
$ch = curl_init();
curl_setopt($ch,CURLOPT_POST,1);
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_CUSTOMREQUEST,'POST');
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE);
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,FALSE);
curl_setopt($ch,CURLOPT_POST,1);
curl_setopt($ch,CURLOPT_HTTPHEADER,$header);
curl_setopt($ch,CURLOPT_POSTFIELDS,$data);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
$temp = curl_exec($ch);
return $temp;
}
function ajax_json($arr='',$code='0')
{
$code_arr = array(
'0'=>'',
'201'=>'',
'301'=>'',
'400'=>'',
'500'=>'',
);
$data = array('code'=>$code,'msg'=>$code_arr[$code],'data'=>$arr);
echo tojson($data);
exit();
}
function create_guid() {
$charid = strtoupper(md5(uniqid(mt_rand(),true)));
$hyphen = chr(45);
$uuid = substr($charid,0,8).$hyphen
.substr($charid,8,4).$hyphen
.substr($charid,12,4).$hyphen
.substr($charid,16,4).$hyphen
.substr($charid,20,12);
return $uuid;
}
function genRequestSn($unique=0){
$code = array('A','B','C','D','E','F','G','H','I','J');
$orderNo = $code[intval(date('Y')) -2024] .strtoupper(dechex(date('m'))) .date('d') .substr(time(),-5) .substr(microtime(),2,5) .sprintf('%02d',rand(0,99));
if(!empty($unique)) $orderNo = $orderNo.$unique;
return $orderNo;
}
function generate_promotion_code($no_of_codes,$exclude_codes_array='',$code_length = 4)
{
$characters = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
$promotion_codes = array();
for($j = 0 ;$j <$no_of_codes;$j++)
{
$code = '';
for ($i = 0;$i <$code_length;$i++)
{
$code .= $characters[mt_rand(0,strlen($characters)-1)];
}
if(!in_array($code,$promotion_codes))
{
if(is_array($exclude_codes_array))
{
if(!in_array($code,$exclude_codes_array))
{
$promotion_codes[$j] = $code;
}
else
{
$j--;
}
}
else
{
$promotion_codes[$j] = $code;
}
}
else
{
$j--;
}
}
return $promotion_codes;
}
function show_tips($text)
{
echo '<blockquote id="m765" class="yead_editor" data-author="Wxeditor" style="font-size:14px;border:0px;padding:0px;margin:5px auto;white-space: normal;">
        <section class="wx-bg" data-wxsrc="https://mmbiz.qlogo.cn/mmbiz/ianq03UUWGmKBiaFRAtInJGYgEuY433yBF9VwrS9voMnIgMxPZibNPfqqMsZbN1qvIuPNX5HFpEyVfBSJuQx9z5icg/0?wx_fmt=jpeg" style="border-style:solid;-webkit-border-image:url(http://img.yzcdn.cn/upload_files/2016/07/11/FjvsL4PlA8W8u_uAMKgS2lJe4onq.jpg) 50 fill repeat;border-width:30px;margin:10px auto" data-width="100%">
            <section style="padding:10px;font-size:60px;line-height:100px;text-align:center;">
                <p>
                    '.$text.'
                </p>
            </section>
        </section>
    </blockquote>';
exit();
}
function ShowMsg_old($msg,$gourl,$onlymsg=0,$limittime=0)
{
if(empty($GLOBALS['cfg_plus_dir'])) $GLOBALS['cfg_plus_dir'] = '..';
$litime = ($limittime==0 ?1000 : $limittime);
$func = '';
if($gourl=='-1')
{
if($limittime==0) $litime = 5000;
$gourl = 'javascript:history.go(-1);';
}
if($gourl==''||$onlymsg==1)
{
$msg = "<script>alert(\"".str_replace("\"",'',$msg)."\");</script>";
}
else
{
$htmlhead  = '<!DOCTYPE html>
            <html lang="en">
            <head>
                <meta charset="UTF-8">
                <meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=0">
                <title>'.$msg.'</title>
                <link href="http://cdn.bootcss.com/bootstrap/3.0.1/css/bootstrap.min.css" rel="stylesheet" />
            </head><body><br /><br /><br />';
if($onlymsg==0)
{
if( $gourl != 'javascript:;'&&$gourl != '')
{
$htmlhead .= '
                <div class="container">
                    <div class="row clearfix">
                        <div class="col-md-12 column">
                            <div class="alert alert-dismissable alert-success">
                            <!-- alert-success alert-info alert-warning alert-danger -->
                                 <button type="button" class="close" data-dismiss="alert" aria-hidden="true"></button>
                                <h4>
                                    
                                </h4> <strong>'.$msg.'</strong> <br /><br /><a href="'.$gourl.'">...</a>
                            </div>
                        </div>
                    </div>
                </div>
                <script type="text/javascript">
                    var pgo=0;
                    function JumpUrl(){
                        if(pgo==0){ location="'.$gourl.'"; pgo=1; }
                    }
                    setTimeout(\'JumpUrl()\','.$litime.');
                </script>
                </body>
                </html>';
}
else
{
$htmlhead .= '
                <div class="container">
                    <div class="row clearfix">
                        <div class="col-md-12 column">
                            <div class="alert alert-dismissable alert-danger">
                            <!-- alert-success alert-info alert-warning alert-danger -->
                                 <button type="button" class="close" data-dismiss="alert" aria-hidden="true"></button>
                                <h4>
                                    
                                </h4> <strong>'.$msg.'</strong> <br /><br /><a href="'.$gourl.'">...</a>
                            </div>
                        </div>
                    </div>
                </div>
                </body>
                </html>';
}
}
else
{
$htmlhead .= '
                <div class="container">
                    <div class="row clearfix">
                        <div class="col-md-12 column">
                            <div class="alert alert-dismissable alert-danger">
                            <!-- alert-success alert-info alert-warning alert-danger -->
                                 <button type="button" class="close" data-dismiss="alert" aria-hidden="true"></button>
                                <h4>
                                    
                                </h4> <strong>Warning!</strong> '.$msg.'
                            </div>
                        </div>
                    </div>
                </div>
                </body>
                </html>';
}
$msg  = $htmlhead;
}
echo $msg;
}
function ShowMsg($msg,$gourl,$type='warning')
{
$litime = $type=='success'?1000:3000;
if($gourl=='')
{
$gourl = 'javascript:history.go(-1);';
}
$htmlhead  = '<!DOCTYPE html>
        <html lang="en">
        <head>
            <meta charset="UTF-8">
            <meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=0">
            <title>'.$msg.'</title>
            <link href="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/5.2.3/css/bootstrap.min.css" rel="stylesheet" />
        </head><body><br /><br /><br />';
$htmlhead .= '
    <div class="container">
        <div class="row clearfix">
            <div class="col-md-12 column">
                <div class="alert alert-dismissable alert-'.$type.'">
                <!-- alert-success alert-info alert-warning alert-danger -->
                     <button type="button" class="close" data-dismiss="alert" aria-hidden="true" onclick="window.location.href=\''.$gourl.'\' "></button>
                    <h4>
                        
                    </h4> <strong>'.$msg.'</strong> <br /><br />
                    <a href="'.$gourl.'">...</a>
                </div>
            </div>
        </div>
    </div>
    <script type="text/javascript">
        var pgo=0;
        function JumpUrl(){
            if(pgo==0){ location="'.$gourl.'"; pgo=1; }
        }
        setTimeout(\'JumpUrl()\','.$litime.');
    </script>
    </body>
    </html>';
$msg  = $htmlhead;
echo $msg;
exit();
}
function redirect($url)
{
header("Location: $url");
exit;
}
function redirect_js($url)
{
echo "<script>window.location.href='{$url}';</script>";
exit();
}
function includeIfExist($path){
if(file_exists($path)){
include $path;
}
}
function getPY($text,$type='First',$delimiter='')
{
$PinYin = new PinYin();
if($type=='All')
{
$py = $PinYin->getAllPY($text,$delimiter);
}
else
{
$py = $PinYin->getFirstPY($text,$delimiter);
}
return $py;
}
function get_key_list($table,$where,$val,$key='id',$order='id desc',$limit='20',$dataCache='')
{
$DB = new DB();
$list = $DB->get_list_where($where,$table,$order,$limit,$dataCache);
$list_temp = array();
foreach ($list as $arr)
{
if(is_array($val))
{
$arr_temp = array();
foreach ($val as $key2=>$val2)
{
$arr_temp[$key2] = $arr[$val2];
$arr_temp[$val2] = $arr[$val2];
}
$list_temp[$arr[$key]] = $arr_temp;
}
else
{
$list_temp[$arr[$key]] = $arr[$val];
}
}
unset($list);
return $list_temp;
}
function timediff($begin_time,$end_time)
{
if(strpos($begin_time,'-')!==false)
{
$begin_time = strtotime($begin_time);
}
if(strpos($end_time,'-')!==false)
{
$end_time = strtotime($end_time);
}
if($begin_time <$end_time){
$starttime = $begin_time;
$endtime = $end_time;
}else{
$starttime = $end_time;
$endtime = $begin_time;
}
$timediff = $endtime-$starttime;
$days = intval($timediff/86400);
$remain = $timediff%86400;
$hours = intval($remain/3600);
$remain = $remain%3600;
$mins = intval($remain/60);
$secs = $remain%60;
$res = array('day'=>$days,'hour'=>$hours,'min'=>$mins,'sec'=>$secs);
return $res;
}
function get_user_agent()
{
$ua = $_SERVER['HTTP_USER_AGENT'];
if (strpos($ua,'MicroMessenger')) {
$name = '';
}
elseif (strpos($ua,'AlipayClient')) {
$name = '';
}
elseif (strpos($ua,'QQ/')) {
$name = 'QQ';
}
elseif (strpos($ua,'CloudPay')) {
$name = '';
}
else {
$name = '';
}
return $name;
}
function outPutStream($videoUrl,$local = true)
{
ini_set('memory_limit','1024M');
set_time_limit(600);
if(!$videoUrl){
header('HTTP/1.1 500 Internal Server Error');
echo 'Error: Video cannot be played !';
exit();
}
if($local)
{
$size = filesize($videoUrl);
$start = 0;
$end = $size -1;
$length = $size;
header("Accept-Ranges: 0-$size");
header('Content-Type: video/mp4');
$ranges_arr = array();
if (isset($_SERVER['HTTP_RANGE'])) {
if (!preg_match('/^bytes=\d*-\d*(,\d*-\d*)*$/i',$_SERVER['HTTP_RANGE'])) {
header('HTTP/1.1 416 Requested Range Not Satisfiable');
}
$ranges = explode(',',substr($_SERVER['HTTP_RANGE'],6));
foreach ($ranges as $range) {
$parts = explode('-',$range);
$ranges_arr[] = array($parts[0],$parts[1]);
}
$ranges = $ranges_arr[0];
if($ranges[0]==''){
if($ranges[1]!=''){
$length = (int)$ranges[1];
$start = $size -$length;
}else{
header('HTTP/1.1 416 Requested Range Not Satisfiable');
}
}else{
$start = (int)$ranges[0];
if($ranges[1]!=''){
$end = (int)$ranges[1];
}
$length = $end -$start +1;
}
header('HTTP/1.1 206 PARTIAL CONTENT');
}
header("Content-Range: bytes {$start}-{$end}/{$size}");
header("Content-Length: $length");
$buffer = 8096;
$file = fopen($videoUrl,'rb');
if($file){
fseek($file,$start);
while (!feof($file) &&($p = ftell($file)) <= $end){
if ($p +$buffer >$end) {
$buffer = $end -$p +1;
}
echo fread($file,$buffer);
flush();
}
fclose($file);
}
}else{
$header_array = get_headers($videoUrl,true);
$sizeTemp = $header_array['Content-Length'];
if (is_array($sizeTemp)) {
$size = $sizeTemp[count($sizeTemp) -1];
}else {
$size = $sizeTemp;
}
$start = 0;
$end = $size -1;
$length = $size;
$buffer = 1024 * 1024 * 5;
$ranges_arr = array();
if (isset($_SERVER['HTTP_RANGE'])) {
if (!preg_match('/^bytes=\d*-\d*(,\d*-\d*)*$/i',$_SERVER['HTTP_RANGE'])) {
header('HTTP/1.1 416 Requested Range Not Satisfiable');
}
$ranges = explode(',',substr($_SERVER['HTTP_RANGE'],6));
foreach ($ranges as $range) {
$parts = explode('-',$range);
$ranges_arr[] = array($parts[0],$parts[1]);
}
$ranges = $ranges_arr[0];
$start = (int)$ranges[0];
if ($ranges[1] != '') {
$end = (int)$ranges[1];
}
$length = min($end -$start +1,$buffer);
$end = $start +$length -1;
}else{
$start=0;
$end=1;
$length=2;
}
$header = array("Range:bytes={$start}-{$end}");
#
$ch2 = curl_init();
curl_setopt($ch2,CURLOPT_URL,$videoUrl);
curl_setopt($ch2,CURLOPT_TIMEOUT,60);
curl_setopt($ch2,CURLOPT_HTTPHEADER,$header);
curl_setopt($ch2,CURLOPT_BUFFERSIZE,$buffer);
curl_setopt($ch2,CURLOPT_SSL_VERIFYPEER,false);
curl_setopt($ch2,CURLOPT_SSL_VERIFYHOST,false);
curl_setopt($ch2,CURLOPT_HEADER,false);
curl_setopt($ch2,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch2,CURLOPT_FOLLOWLOCATION,true);
curl_setopt($ch2,CURLOPT_CONNECTTIMEOUT,60);
curl_setopt($ch2,CURLOPT_NOBODY,false);
curl_setopt($ch2,CURLOPT_REFERER,$videoUrl);
curl_setopt($ch2,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36 Edg/85.0.564.44');
$content = curl_exec($ch2);
curl_close($ch2);
#
header('HTTP/1.1 206 PARTIAL CONTENT');
header('Accept-Ranges: bytes');
header('Connection: keep-alive');
header('Content-Type: video/mp4');
header('Access-Control-Allow-Origin: *');
if($end!=1){
$end=$size-1;
}
header("Content-Range: bytes {$start}-{$end}/{$size}");
header('Content-Length: '.strlen($content));
ob_clean();
echo $content;
unset($content);
}
}
class SinglePHP {
private $c;
private $a;
private static $_instance;
private function __construct($conf){
C($conf);
}
private function __clone(){}
public static function getInstance($conf){
if(!(self::$_instance instanceof self)){
self::$_instance = new self($conf);
}
return self::$_instance;
}
public function run(){
if(C('USE_SESSION') == true){
session_start();
}
C('APP_FULL_PATH',getcwd().'/'.C('APP_PATH').'/');
includeIfExist( C('APP_FULL_PATH').'/common.php');
$pathMod = C('PATH_MOD');
$pathMod = empty($pathMod)?'NORMAL':$pathMod;
spl_autoload_register(array('SinglePHP','autoload'));
if(strcmp(strtoupper($pathMod),'NORMAL') === 0 ||!isset($_SERVER['PATH_INFO'])){
if(!empty($GLOBALS['HTTP_RAW_POST_DATA']))
{
$arr = json_decode($GLOBALS['HTTP_RAW_POST_DATA'],true);
if(is_array($arr))
{
$_POST = $arr;
$_REQUEST['s'] = isset($_REQUEST['s'])?$_REQUEST['s']:$_POST['s'];
}
}
$s = trim($_REQUEST['s']);
if (!empty($s)) {
$s = trim($s);
$urls = explode('/',$s);
$this->c = !empty($urls[0])?$urls[0]:'Index';
$this->a = !empty($urls[1])?$urls[1]:'Index';
}
else
{
$this->c = isset($_GET['c'])?$_GET['c']:'Index';
$this->a = isset($_GET['a'])?$_GET['a']:'Index';
}
}else{
$pathInfo = isset($_SERVER['PATH_INFO'])?$_SERVER['PATH_INFO']:'';
$pathInfoArr = explode('/',trim($pathInfo,'/'));
if(isset($pathInfoArr[0]) &&$pathInfoArr[0] !== ''){
$this->c = $pathInfoArr[0];
}else{
$this->c = 'Index';
}
if(isset($pathInfoArr[1])){
$this->a = $pathInfoArr[1];
}else{
$this->a = 'Index';
}
}
if(!class_exists($this->c.'Controller')){
halt(''.$this->c.'');
}
$controllerClass = $this->c.'Controller';
$controller = new $controllerClass();
if(!method_exists($controller,$this->a.'Action')){
halt(''.$this->a.'');
}
call_user_func(array($controller,$this->a.'Action'));
}
public static function autoload($class){
if(substr($class,-10)=='Controller'){
includeIfExist(C('APP_FULL_PATH').'/Controller/'.$class.'.class.php');
}elseif(substr($class,-6)=='Widget'){
includeIfExist(C('APP_FULL_PATH').'/Widget/'.$class.'.class.php');
}else{
includeIfExist(C('APP_FULL_PATH').'/Lib/'.$class.'.class.php');
}
}
}
class Controller {
private $_view;
public function __construct(){
$this->_view = new View();
$this->_init();
}
protected function _init(){}
protected function display($tpl=''){
if($tpl === ''){
$trace = debug_backtrace();
$controller = substr($trace[1]['class'],0,-10);
$action = substr($trace[1]['function'],0 ,-6);
$tpl = $controller .'/'.$action;
}
elseif(strlen($tpl)==2)
{
$trace = debug_backtrace();
$controller = substr($trace[1]['class'],0,-10);
$action = substr($trace[1]['function'],0 ,-6);
$tpl = $controller .'/'.$tpl .'/'.$action;
}
elseif(strpos($tpl,'/') === false)
{
$trace = debug_backtrace();
$controller = substr($trace[1]['class'],0,-10);
$tpl = $controller .'/'.$tpl;
}
$this->_view->display($tpl);
}
protected function assign($name,$value){
$this->_view->assign($name,$value);
}
protected function ajaxReturn($data){
echo tojson($data);
exit;
}
protected function redirect($url){
header("Location: $url");
exit;
}
}
class View {
private $_tplDir;
private $_viewPath;
private $_data = array();
private static $tmpData;
public function __construct($tplDir=''){
if($tplDir == ''){
$this->_tplDir = './'.C('APP_PATH').'/View/';
}else{
$this->_tplDir = $tplDir;
}
}
public function assign($key,$value) {
$this->_data[$key] = $value;
}
public function display($tplFile) {
$this->_viewPath = $this->_tplDir .$tplFile .'.php';
unset($tplFile);
extract($this->_data);
include $this->_viewPath;
}
public static function tplInclude($path,$data=array()){
self::$tmpData = array(
'path'=>C('APP_FULL_PATH') .'/View/'.$path .'.php',
'data'=>$data,
);
unset($path);
unset($data);
extract(self::$tmpData['data']);
include self::$tmpData['path'];
}
}
class Widget {
protected $_view;
protected $_widgetName;
public function __construct(){
$this->_widgetName = get_class($this);
$dir = C('APP_FULL_PATH') .'/Widget/Tpl/';
$this->_view = new View($dir);
}
public function invoke($data){}
protected function display($tpl=''){
if($tpl == ''){
$tpl = $this->_widgetName;
}
$this->_view->display($tpl);
}
protected function assign($name,$value){
$this->_view->assign($name,$value);
}
}
class DB
{
function __construct()
{
$this->sqlite = C('USE_SQLITE');
if($this->sqlite)
{
$this->DB = new SQLite(C('SQLITE_FILE_PATH'));
}
}
public function add_info($data,$table='user')
{
$key_list = '';
$val_list = '';
foreach ($data as $key =>$val)
{
$key_list .= ",`{$key}`";
$val_list .= ",'{$val}'";
}
$key_list = substr($key_list,1);
$val_list = substr($val_list,1);
$insert = "INSERT INTO `{$table}` ({$key_list}) VALUES ({$val_list});";
if($this->sqlite)
{
$re = $this->DB->exec($insert);
}
else
{
$re = M()->execute($insert);
}
if($re)
{
if($this->sqlite)
{
$id = $this->DB->RecordLastID();
}
else
{
$id = M()->getInsertId();
}
}
else
{
$id = false;
}
return $id;
}
public function update_info($id,$data,$table='user')
{
$set = '';
foreach ($data as $key =>$value)
{
$set .= ",`{$key}`='{$value}'";
}
$set = substr($set,1);
$sql = "UPDATE `{$table}` SET {$set} WHERE `id` = '{$id}';";
if($this->sqlite)
{
$re = $this->DB->exec($sql);
}
else
{
$re = M()->execute($sql);
}
return $re;
}
public function get_info($id,$table='user',$dataCache='')
{
$sql = "SELECT * FROM `{$table}` WHERE `id`='{$id}';";
$re = false;
if(is_array($dataCache))
{
$dir = $dataCache[0];
$cacheTime = $dataCache[1];
$cacheKey = md5($sql);
$re = DC('db','mysql','data')->getData($cacheKey,$cacheTime,'sql',$dir);
}
if(!$re)
{
if($this->sqlite)
{
$re = $this->DB->getOne($sql);
}
else
{
$re = M()->query($sql);
if(is_array($re))
{
$re = $re[0];
}
else
{
$re = false;
}
}
if(is_array($dataCache))
{
DC('db','mysql','data')->setData($cacheKey,$re,'sql',$dir);
}
}
return $re;
}
public function get_info_where($where,$table='user',$dataCache='')
{
$sql = "SELECT * FROM `{$table}` WHERE {$where};";
$re = false;
if(is_array($dataCache))
{
$dir = $dataCache[0];
$cacheTime = $dataCache[1];
$cacheKey = md5($sql);
$re = DC('db','mysql','data')->getData($cacheKey,$cacheTime,'sql',$dir);
}
if(!$re)
{
if($this->sqlite)
{
$re = $this->DB->getOne($sql);
}
else
{
$re = M()->query($sql);
if(is_array($re))
{
$re = $re[0];
}
else
{
$re = false;
}
}
if(is_array($dataCache))
{
DC('db','mysql','data')->setData($cacheKey,$re,'sql',$dir);
}
}
return $re;
}
public function get_list($where,$table='user',$order='id desc',$limit='20',$dataCache='')
{
return $this->get_list_where($where,$table,$order,$limit,$dataCache);
}
public function get_list_where($where,$table='user',$order='id desc',$limit='20',$dataCache='')
{
$sql = "SELECT * FROM `{$table}` WHERE {$where} ORDER BY {$order} LIMIT {$limit};";
$re = false;
if(is_array($dataCache))
{
$dir = $dataCache[0];
$cacheTime = $dataCache[1];
$cacheKey = md5($sql);
$re = DC('db','mysql','data')->getData($cacheKey,$cacheTime,'sql',$dir);
}
if(!$re)
{
if($this->sqlite)
{
$re = $this->DB->RecordArray($sql);
}
else
{
$re = M()->query($sql);
}
if(is_array($dataCache))
{
DC('db','mysql','data')->setData($cacheKey,$re,'sql',$dir);
}
}
return $re;
}
public function get_count_where($where,$table='user',$dataCache='')
{
$sql = "SELECT count(*) as num FROM `{$table}` WHERE {$where};";
$re = false;
if(is_array($dataCache))
{
$dir = $dataCache[0];
$cacheTime = $dataCache[1];
$cacheKey = md5($sql);
$re = DC('db','mysql','data')->getData($cacheKey,$cacheTime,'sql',$dir);
}
if(!$re)
{
if($this->sqlite)
{
$re = $this->DB->getOne($sql);
}
else
{
$re = M()->query($sql);
if(is_array($re))
{
$re = $re[0];
}
else
{
$re = false;
}
}
if(is_array($dataCache))
{
DC('db','mysql','data')->setData($cacheKey,$re,'sql',$dir);
}
}
return (int)$re['num'];
}
public function get_count_list_where($where,$group='level',$table='user',$dataCache='')
{
$sql = "SELECT {$group},count(*) as num FROM `{$table}` WHERE {$where} GROUP BY {$group};";
$re = false;
if(is_array($dataCache))
{
$dir = $dataCache[0];
$cacheTime = $dataCache[1];
$cacheKey = md5($sql);
$re = DC('db','mysql','data')->getData($cacheKey,$cacheTime,'sql',$dir);
}
if(!$re)
{
if($this->sqlite)
{
$list = $this->DB->RecordArray($sql);
}
else
{
$list = M()->query($sql);
}
$re = array();
foreach ($list as $row)
{
$re[$row[$group]] = $row['num'];
}
if(is_array($dataCache))
{
DC('db','mysql','data')->setData($cacheKey,$re,'sql',$dir);
}
}
return $re;
}
public function get_sum_where($where,$field,$table='user',$dataCache='')
{
$sql = "SELECT SUM(`{$field}`) as num FROM `{$table}` WHERE {$where};";
$re = false;
if(is_array($dataCache))
{
$dir = $dataCache[0];
$cacheTime = $dataCache[1];
$cacheKey = md5($sql);
$re = DC('db','mysql','data')->getData($cacheKey,$cacheTime,'sql',$dir);
}
if(!$re)
{
if($this->sqlite)
{
$re = $this->DB->getOne($sql);
}
else
{
$re = M()->query($sql);
if(is_array($re))
{
$re = $re[0];
}
else
{
$re = false;
}
}
if(is_array($dataCache))
{
DC('db','mysql','data')->setData($cacheKey,$re,'sql',$dir);
}
}
return (int)$re['num'];
}
public function get_sum_list_where($where,$field,$group='level',$table='user',$dataCache='')
{
$sql = "SELECT {$group},SUM(`{$field}`) as num FROM `{$table}` WHERE {$where} GROUP BY {$group};";
$re = false;
if(is_array($dataCache))
{
$dir = $dataCache[0];
$cacheTime = $dataCache[1];
$cacheKey = md5($sql);
$re = DC('db','mysql','data')->getData($cacheKey,$cacheTime,'sql',$dir);
}
if(!$re)
{
if($this->sqlite)
{
$list = $this->DB->RecordArray($sql);
}
else
{
$list = M()->query($sql);
}
$re = array();
foreach ($list as $row)
{
$re[$row[$group]] = $row['num'];
}
if(is_array($dataCache))
{
DC('db','mysql','data')->setData($cacheKey,$re,'sql',$dir);
}
}
return $re;
}
public function update_info_where($where,$data,$table='user')
{
$set = '';
foreach ($data as $key =>$value)
{
$set .= ",`{$key}`='{$value}'";
}
$set = substr($set,1);
$sql = "UPDATE `{$table}` SET {$set} WHERE {$where};";
if($this->sqlite)
{
$re = $this->DB->exec($sql);
}
else
{
$re = M()->execute($sql);
}
return $re;
}
public function del_info_where($where,$table='user')
{
$sql = "DELETE FROM `{$table}` WHERE {$where}";
if($this->sqlite)
{
$re = $this->DB->exec($sql);
}
else
{
$re = M()->execute($sql);
}
return $re;
}
}
class SQLite
{
function __construct($file)
{
try
{
$this->connection=new PDO('sqlite:'.$file);
}
catch(PDOException $e)
{
try
{
$this->connection=new PDO('sqlite2:'.$file);
}
catch(PDOException $e)
{
exit('error!');
}
}
}
function __destruct()
{
$this->connection=null;
}
function query($sql) 
{
return $this->connection->query($sql);
}
function getlist($sql) 
{
$recordlist=array();
foreach($this->query($sql) as $rstmp)
{
$recordlist[]=$rstmp;
}
return $recordlist;
}
function getOne($sql) 
{
$recordlist=array();
foreach($this->query($sql) as $rstmp)
{
return $rstmp;
}
return false;
}
function exec($sql)
{
return $this->connection->exec($sql);
}
function Execute($sql)
{
return $this->query($sql)->fetch();
}
function RecordArray($sql)
{
return $this->query($sql)->fetchAll();
}
function RecordCount($sql)
{
return count($this->RecordArray($sql));
}
function RecordLastID()
{
return $this->connection->lastInsertId();
}
}
class DB_mysql {
private $_db;
private $_lastSql;
private $_rows;
private $_error;
private static $_instance = array();
private function __construct($dbConf){
if(!isset($dbConf['DB_CHARSET'])){
$dbConf['DB_CHARSET'] = 'utf8';
}
$this->_db = mysql_connect($dbConf['DB_HOST'].':'.$dbConf['DB_PORT'],$dbConf['DB_USER'],$dbConf['DB_PWD']);
if($this->_db === false){
halt(mysql_error());
}
$selectDb = mysql_select_db($dbConf['DB_NAME'],$this->_db);
if($selectDb === false){
halt(mysql_error());
}
mysql_set_charset($dbConf['DB_CHARSET']);
}
private function __clone(){}
static public function getInstance($dbConf){
if(!isset($dbConf['DB_PORT'])){
$dbConf['DB_PORT'] = '3306';
}
$key = $dbConf['DB_HOST'].':'.$dbConf['DB_PORT'];
if(!isset(self::$_instance[$key]) ||!(self::$_instance[$key] instanceof self)){
self::$_instance[$key] = new self($dbConf);
}
return self::$_instance[$key];
}
public function escape($str){
return mysql_real_escape_string($str,$this->_db);
}
public function query($sql){
$this->_rows = 0;
$this->_error = '';
$this->_lastSql = $sql;
$this->logSql();
$res = mysql_query($sql,$this->_db);
if($res === false){
$this->_error = mysql_error($this->_db);
$this->logError();
return false;
}else{
$this->_rows = mysql_num_rows($res);
$result = array();
if($this->_rows >0) {
while($row = mysql_fetch_array($res,MYSQL_ASSOC)){
$result[]   =   $row;
}
mysql_data_seek($res,0);
}
else
{
$result = false;
}
return $result;
}
}
public function execute($sql) {
$this->_rows = 0;
$this->_error = '';
$this->_lastSql = $sql;
$this->logSql();
$result =   mysql_query($sql,$this->_db) ;
if ( false === $result) {
$this->_error = mysql_error($this->_db);
$this->logError();
return false;
}else {
$this->_rows = mysql_affected_rows($this->_db);
return $this->_rows;
}
}
public function getRows(){
return $this->_rows;
}
public function getInsertId() {
return mysql_insert_id($this->_db);
}
public function getLastSql(){
return $this->_lastSql;
}
public function getError(){
return $this->_error;
}
private function logSql(){
Log::sql($this->_lastSql);
}
private function logError(){
$str = '[SQL ERR]'.$this->_error.' SQL:'.$this->_lastSql;
Log::warn($str);
}
}
class DB_mysql_php7 {
private $_db;
private $_lastSql;
private $_rows;
private $_error;
private static $_instance = array();
private function __construct($dbConf){
if(!isset($dbConf['DB_CHARSET'])){
$dbConf['DB_CHARSET'] = 'utf8';
}
$this->_db = mysqli_connect($dbConf['DB_HOST'].':'.$dbConf['DB_PORT'],$dbConf['DB_USER'],$dbConf['DB_PWD']);
if($this->_db === false){
halt(mysqli_error());
}
$selectDb = mysqli_select_db($this->_db,$dbConf['DB_NAME']);
if($selectDb === false){
halt(mysqli_error());
}
mysqli_set_charset($this->_db,$dbConf['DB_CHARSET']);
}
private function __clone(){}
static public function getInstance($dbConf){
if(!isset($dbConf['DB_PORT'])){
$dbConf['DB_PORT'] = '3306';
}
$key = $dbConf['DB_HOST'].':'.$dbConf['DB_PORT'];
if(!isset(self::$_instance[$key]) ||!(self::$_instance[$key] instanceof self)){
self::$_instance[$key] = new self($dbConf);
}
return self::$_instance[$key];
}
public function escape($str){
return mysqli_real_escape_string($this->_db,$str);
}
public function query($sql){
$this->_rows = 0;
$this->_error = '';
$this->_lastSql = $sql;
$this->logSql();
$res = mysqli_query($this->_db,$sql);
if($res === false){
$this->_error = mysqli_error($this->_db);
$this->logError();
return false;
}else{
$this->_rows = mysqli_num_rows($res);
$result = array();
if($this->_rows >0) {
while($row = mysqli_fetch_assoc($res)){
$result[]   =   $row;
}
mysqli_data_seek($res,0);
}
else
{
$result = false;
}
return $result;
}
}
public function execute($sql) {
$this->_rows = 0;
$this->_error = '';
$this->_lastSql = $sql;
$this->logSql();
$result =   mysqli_query($this->_db,$sql) ;
if ( false === $result) {
$this->_error = mysqli_error($this->_db);
$this->logError();
return false;
}else {
$this->_rows = mysqli_affected_rows($this->_db);
return $this->_rows;
}
}
public function getRows(){
return $this->_rows;
}
public function getInsertId() {
return mysqli_insert_id($this->_db);
}
public function getLastSql(){
return $this->_lastSql;
}
public function getError(){
return $this->_error;
}
private function logSql(){
Log::sql($this->_lastSql);
}
private function logError(){
$str = '[SQL ERR]'.$this->_error.' SQL:'.$this->_lastSql;
Log::warn($str);
}
}
class Log{
public static function write($msg,$level='DEBUG',$wf=false){
if(function_exists('sae_debug')){
$msg = "[{$level}]".$msg;
sae_set_display_errors(false);
sae_debug(trim($msg));
sae_set_display_errors(true);
}else{
$msg = date('[ Y-m-d H:i:s ]')."[{$level}]".$msg."
";
$logPath = C('APP_FULL_PATH').'/Log/'.date('Ymd').'.log';
if($wf){
$logPath .= '.wf';
}
file_put_contents($logPath,$msg,FILE_APPEND);
}
}
public static function fatal($msg){
self::write($msg,'FATAL',true);
}
public static function warn($msg){
self::write($msg,'WARN',true);
}
public static function notice($msg){
self::write($msg,'NOTICE');
}
public static function debug($msg){
self::write($msg,'DEBUG');
}
public static function sql($msg){
self::write($msg,'SQL');
}
}
class ExtException extends Exception{
protected $extra;
public function __construct($message = '',$extra = array(),$code = 0,$previous = null){
$this->extra = $extra;
parent::__construct($message,$code,$previous);
}
public function getExtra(){
return $this->extra;
}
}
class dataCache{
private $cacheDir = 'cache';
private $gzip = false;
private $md5 = false;
private $cacheTime = 3600;
private $level = 0;
private $dirCount = 100;
private $mtime = '';
private $cacheKey = '';
private $fileName = '';
private $file = '';
private $type = 'txt';
private $cat = 'default';
private $site = 'bolin';
private static $_instance;
function __construct($config){
$this->setConfig($config);
}
public static function getInstance($config){
if(!(self::$_instance instanceof self)){
self::$_instance = new self($config);
}
return self::$_instance;
}
function setConfig($config){
if(is_array($config)){
foreach($config as $k =>$v){
if(isset($this->$k))$this->$k = $v;
}
}
}
function getData($cacheKey,$cacheTime='',$type='',$cat=''){
if(!empty($cacheTime)){
$this->cacheTime = $cacheTime;
}
if(!empty($type)){
$this->type = $type;
}
if(!empty($cat)){
$this->cat = $cat;
}
if (!$this->cacheTime){
return false;
}else {
$this->file = $this->getFile($cacheKey);
if (!is_file($this->file))return false;
$this->mtime = @filemtime($this->file);
if (time() -$this->cacheTime <$this->mtime){
return $this->de(file_get_contents($this->file));
}else{
return false;
}
}
}
function setData($cacheKey,$data,$type='',$cat=''){
if(!empty($type)){
$this->type = $type;
}
if(!empty($cat)){
$this->cat = $cat;
}
$this->file = $this->getFile($cacheKey);
$data = $this->en($data);
return $this->tep_write($this->file,$data);
}
function delData($cacheKey='',$type='',$cat=''){
if ($cacheKey){
if (!$type ||!$cat) return false;
$_file = $this->getThisFile($cacheKey,$type,$cat);
if (file_exists($_file)) unlink($_file);else return false;
}else {
if ($cat){
if (!$type)return false;
$_dir = $this->cacheDir .$type .'/'.$cat;
if (file_exists($_dir)) $this->tep_rmdir($_dir);else return false;
}else {
if ($type){
$_dir = $this->cacheDir .$type;
if (file_exists($_dir)) $this->tep_rmdir($_dir);else return false;
}else {
$_dir = $this->cacheDir;
if (file_exists($_dir)) $this->tep_rmdir($_dir);else return false;
}
}
}
return true;
}
function getThisFile($cacheKey='',$type='',$cat=''){
if(!empty($type)){
$this->type = $type;
}
if(!empty($cat)){
$this->cat = $cat;
}
if (!$cacheKey){
return $this->file;
}else {
$this->type = $type;
$this->cat = $cat;
return $this->getFile($cacheKey);
}
}
function getFileSize(){
}
function getDirSize(){
}
private function getFile($fileName){
$_dir1 = '';
$_dir2 = '';
if ($this->md5) $fileName = md5($fileName);
$_len = strlen($fileName);
$_dir = $this->cacheDir .'/'.$this->type .'/'.$this->cat.'/';
if ($this->level==2){
for($i=0;$i<$_len;$i++){
$_dir1 += ord($fileName{$i})*$i;
$_dir2 += ord($fileName{$i})*($i+3);
}
$_dir1 %= $this->dirCount;
$_dir2 %= $this->dirCount;
$this->tep_multDir($_dir .$_dir1.'/'.$_dir2);
$this->file = $_dir .$_dir1.'/'.$_dir2.'/'.$this->site .'_'.$fileName.'.'.$this->type;
}elseif ($this->level==1){
for($i=0;$i<$_len;$i++){
$_dir1 += ord($fileName{$i})*$i;
}
$_dir1 %= $this->dirCount;
$this->tep_multDir($_dir .$_dir1);
$this->file = $_dir .$_dir1.'/'.$this->site .'_'.$fileName.'.'.$this->type;
}else {
$this->tep_multDir($_dir);
$this->file = $_dir .$this->site .'_'.$fileName.'.'.$this->type;
}
unset($_dir1,$_dir2,$_len,$_dir);
return $this->file;
}
private function de($data){
if ($this->gzip) return unserialize(gzinflate($data));
return unserialize($data);
}
private function en($data){
if ($this->gzip) return gzdeflate(serialize($data));
return serialize($data);
}
function  tep_multDir($dirs){
$raw_dirs = $dirs;
@mkdir($raw_dirs,0777,true);
if (file_exists($raw_dirs)) return true;return false;
}
function tep_write($fileName,$content,$type = 'w')
{
$fd = fopen($fileName,$type);
if ($fd){
fwrite($fd,$content);
fclose($fd);
return true;
}else{
return false;
}
}
function tep_rmdir($path){
if (!is_dir($path)) return false;
$handle=@opendir($path);
while($val=@readdir($handle)){
if ($val=='.'||$val=='..') continue;
$value=$path.'/'.$val;
if (is_dir($value)){
$this->tep_rmdir($value);
}else if (is_file($value)){
unlink($value);
}
}
@closedir($handle);
rmdir($path);
return true;
}
}
class Xml
{
public static function parse($xml)
{
return self::normalize(simplexml_load_string($xml,'SimpleXMLElement',LIBXML_NOCDATA |LIBXML_NOBLANKS));
}
public static function build(
$data,
$root = 'xml',
$item = 'item',
$attr = '',
$id = 'id'
) {
if (is_array($attr)) {
$_attr = array();
foreach ($attr as $key =>$value) {
$_attr[] = "{$key}=\"{$value}\"";
}
$attr = implode(' ',$_attr);
}
$attr = trim($attr);
$attr = empty($attr) ?'': " {$attr}";
$xml = "<{$root}{$attr}>";
$xml .= self::data2Xml($data,$item,$id);
$xml .= "</{$root}>";
return $xml;
}
public static function cdata($string)
{
return sprintf('<![CDATA[%s]]>',$string);
}
protected static function normalize($obj)
{
$result = null;
if (is_object($obj)) {
$obj = (array) $obj;
}
if (is_array($obj)) {
$result = array();
foreach ($obj as $key =>$value) {
$res = self::normalize($value);
if (($key === '@attributes') &&($key)) {
$result = $res;
}else {
$result[$key] = $res;
}
}
}else {
$result = $obj;
}
return $result;
}
protected static function data2Xml($data,$item = 'item',$id = 'id')
{
$xml = $attr = '';
foreach ($data as $key =>$val) {
if (is_numeric($key)) {
$id &&$attr = " {$id}=\"{$key}\"";
$key = $item;
}
$xml .= "<{$key}{$attr}>";
if ((is_array($val) ||is_object($val))) {
$xml .= self::data2Xml((array) $val,$item,$id);
}elseif (is_numeric($val) ||!preg_match('/[\'"&<>]/',$val)) {
$xml .= $val;
}else {
$xml .= self::cdata($val);
}
$xml .= "</{$key}>";
}
return $xml;
}
}
class PinYin
{
private $pylist = array(  'a'=>-20319,'ai'=>-20317,'an'=>-20304,'ang'=>-20295,'ao'=>-20292,'ba'=>-20283,'bai'=>-20265,'ban'=>-20257,'bang'=>-20242,'bao'=>-20230,'bei'=>-20051,'ben'=>-20036,'beng'=>-20032,'bi'=>-20026,'bian'=>-20002,'biao'=>-19990,'bie'=>-19986,'bin'=>-19982,'bing'=>-19976,'bo'=>-19805,'bu'=>-19784,'ca'=>-19775,'cai'=>-19774,'can'=>-19763,'cang'=>-19756,'cao'=>-19751,'ce'=>-19746,'ceng'=>-19741,'cha'=>-19739,'chai'=>-19728,'chan'=>-19725,'chang'=>-19715,'chao'=>-19540,'che'=>-19531,'chen'=>-19525,'cheng'=>-19515,'chi'=>-19500,'chong'=>-19484,'chou'=>-19479,'chu'=>-19467,'chuai'=>-19289,'chuan'=>-19288,'chuang'=>-19281,'chui'=>-19275,'chun'=>-19270,'chuo'=>-19263,'ci'=>-19261,'cong'=>-19249,'cou'=>-19243,'cu'=>-19242,'cuan'=>-19238,'cui'=>-19235,'cun'=>-19227,'cuo'=>-19224,'da'=>-19218,'dai'=>-19212,'dan'=>-19038,'dang'=>-19023,'dao'=>-19018,'de'=>-19006,'deng'=>-19003,'di'=>-18996,'dian'=>-18977,'diao'=>-18961,'die'=>-18952,'ding'=>-18783,'diu'=>-18774,'dong'=>-18773,'dou'=>-18763,'du'=>-18756,'duan'=>-18741,'dui'=>-18735,'dun'=>-18731,'duo'=>-18722,'e'=>-18710,'en'=>-18697,'er'=>-18696,'fa'=>-18526,'fan'=>-18518,'fang'=>-18501,'fei'=>-18490,'fen'=>-18478,'feng'=>-18463,'fo'=>-18448,'fou'=>-18447,'fu'=>-18446,'ga'=>-18239,'gai'=>-18237,'gan'=>-18231,'gang'=>-18220,'gao'=>-18211,'ge'=>-18201,'gei'=>-18184,'gen'=>-18183,'geng'=>-18181,'gong'=>-18012,'gou'=>-17997,'gu'=>-17988,'gua'=>-17970,'guai'=>-17964,'guan'=>-17961,'guang'=>-17950,'gui'=>-17947,'gun'=>-17931,'guo'=>-17928,'ha'=>-17922,'hai'=>-17759,'han'=>-17752,'hang'=>-17733,'hao'=>-17730,'he'=>-17721,'hei'=>-17703,'hen'=>-17701,'heng'=>-17697,'hong'=>-17692,'hou'=>-17683,'hu'=>-17676,'hua'=>-17496,'huai'=>-17487,'huan'=>-17482,'huang'=>-17468,'hui'=>-17454,'hun'=>-17433,'huo'=>-17427,'ji'=>-17417,'jia'=>-17202,'jian'=>-17185,'jiang'=>-16983,'jiao'=>-16970,'jie'=>-16942,'jin'=>-16915,'jing'=>-16733,'jiong'=>-16708,'jiu'=>-16706,'ju'=>-16689,'juan'=>-16664,'jue'=>-16657,'jun'=>-16647,'ka'=>-16474,'kai'=>-16470,'kan'=>-16465,'kang'=>-16459,'kao'=>-16452,'ke'=>-16448,'ken'=>-16433,'keng'=>-16429,'kong'=>-16427,'kou'=>-16423,'ku'=>-16419,'kua'=>-16412,'kuai'=>-16407,'kuan'=>-16403,'kuang'=>-16401,'kui'=>-16393,'kun'=>-16220,'kuo'=>-16216,'la'=>-16212,'lai'=>-16205,'lan'=>-16202,'lang'=>-16187,'lao'=>-16180,'le'=>-16171,'lei'=>-16169,'leng'=>-16158,'li'=>-16155,'lia'=>-15959,'lian'=>-15958,'liang'=>-15944,'liao'=>-15933,'lie'=>-15920,'lin'=>-15915,'ling'=>-15903,'liu'=>-15889,'long'=>-15878,'lou'=>-15707,'lu'=>-15701,'lv'=>-15681,'luan'=>-15667,'lue'=>-15661,'lun'=>-15659,'luo'=>-15652,'ma'=>-15640,'mai'=>-15631,'man'=>-15625,'mang'=>-15454,'mao'=>-15448,'me'=>-15436,'mei'=>-15435,'men'=>-15419,'meng'=>-15416,'mi'=>-15408,'mian'=>-15394,'miao'=>-15385,'mie'=>-15377,'min'=>-15375,'ming'=>-15369,'miu'=>-15363,'mo'=>-15362,'mou'=>-15183,'mu'=>-15180,'na'=>-15165,'nai'=>-15158,'nan'=>-15153,'nang'=>-15150,'nao'=>-15149,'ne'=>-15144,'nei'=>-15143,'nen'=>-15141,'neng'=>-15140,'ni'=>-15139,'nian'=>-15128,'niang'=>-15121,'niao'=>-15119,'nie'=>-15117,'nin'=>-15110,'ning'=>-15109,'niu'=>-14941,'nong'=>-14937,'nu'=>-14933,'nv'=>-14930,'nuan'=>-14929,'nue'=>-14928,'nuo'=>-14926,'o'=>-14922,'ou'=>-14921,'pa'=>-14914,'pai'=>-14908,'pan'=>-14902,'pang'=>-14894,'pao'=>-14889,'pei'=>-14882,'pen'=>-14873,'peng'=>-14871,'pi'=>-14857,'pian'=>-14678,'piao'=>-14674,'pie'=>-14670,'pin'=>-14668,'ping'=>-14663,'po'=>-14654,'pu'=>-14645,'qi'=>-14630,'qia'=>-14594,'qian'=>-14429,'qiang'=>-14407,'qiao'=>-14399,'qie'=>-14384,'qin'=>-14379,'qing'=>-14368,'qiong'=>-14355,'qiu'=>-14353,'qu'=>-14345,'quan'=>-14170,'que'=>-14159,'qun'=>-14151,'ran'=>-14149,'rang'=>-14145,'rao'=>-14140,'re'=>-14137,'ren'=>-14135,'reng'=>-14125,'ri'=>-14123,'rong'=>-14122,'rou'=>-14112,'ru'=>-14109,'ruan'=>-14099,'rui'=>-14097,'run'=>-14094,'ruo'=>-14092,'sa'=>-14090,'sai'=>-14087,'san'=>-14083,'sang'=>-13917,'sao'=>-13914,'se'=>-13910,'sen'=>-13907,'seng'=>-13906,'sha'=>-13905,'shai'=>-13896,'shan'=>-13894,'shang'=>-13878,'shao'=>-13870,'she'=>-13859,'shen'=>-13847,'sheng'=>-13831,'shi'=>-13658,'shou'=>-13611,'shu'=>-13601,'shua'=>-13406,'shuai'=>-13404,'shuan'=>-13400,'shuang'=>-13398,'shui'=>-13395,'shun'=>-13391,'shuo'=>-13387,'si'=>-13383,'song'=>-13367,'sou'=>-13359,'su'=>-13356,'suan'=>-13343,'sui'=>-13340,'sun'=>-13329,'suo'=>-13326,'ta'=>-13318,'tai'=>-13147,'tan'=>-13138,'tang'=>-13120,'tao'=>-13107,'te'=>-13096,'teng'=>-13095,'ti'=>-13091,'tian'=>-13076,'tiao'=>-13068,'tie'=>-13063,'ting'=>-13060,'tong'=>-12888,'tou'=>-12875,'tu'=>-12871,'tuan'=>-12860,'tui'=>-12858,'tun'=>-12852,'tuo'=>-12849,'wa'=>-12838,'wai'=>-12831,'wan'=>-12829,'wang'=>-12812,'wei'=>-12802,'wen'=>-12607,'weng'=>-12597,'wo'=>-12594,'wu'=>-12585,'xi'=>-12556,'xia'=>-12359,'xian'=>-12346,'xiang'=>-12320,'xiao'=>-12300,'xie'=>-12120,'xin'=>-12099,'xing'=>-12089,'xiong'=>-12074,'xiu'=>-12067,'xu'=>-12058,'xuan'=>-12039,'xue'=>-11867,'xun'=>-11861,'ya'=>-11847,'yan'=>-11831,'yang'=>-11798,'yao'=>-11781,'ye'=>-11604,'yi'=>-11589,'yin'=>-11536,'ying'=>-11358,'yo'=>-11340,'yong'=>-11339,'you'=>-11324,'yu'=>-11303,'yuan'=>-11097,'yue'=>-11077,'yun'=>-11067,'za'=>-11055,'zai'=>-11052,'zan'=>-11045,'zang'=>-11041,'zao'=>-11038,'ze'=>-11024,'zei'=>-11020,'zen'=>-11019,'zeng'=>-11018,'zha'=>-11014,'zhai'=>-10838,'zhan'=>-10832,'zhang'=>-10815,'zhao'=>-10800,'zhe'=>-10790,'zhen'=>-10780,'zheng'=>-10764,'zhi'=>-10587,'zhong'=>-10544,'zhou'=>-10533,'zhu'=>-10519,'zhua'=>-10331,'zhuai'=>-10329,'zhuan'=>-10328,'zhuang'=>-10322,'zhui'=>-10315,'zhun'=>-10309,'zhuo'=>-10307,'zi'=>-10296,'zong'=>-10281,'zou'=>-10274,'zu'=>-10270,'zuan'=>-10262,'zui'=>-10260,'zun'=>-10256,'zuo'=>-10254);
public function getAllPY($chinese,$delimiter = '',$length = 0,$charset='utf-8')
{
if($charset != 'gb2312') $chinese = $this->_U2_Utf8_Gb($chinese);
$py = $this->zh_to_pys($chinese,$delimiter);
if($length)
{
$py = substr($py,0,$length);
}
return $py;
}
public function getFirstPY($chinese,$delimiter = '',$charset='utf-8')
{
$chinese .= ' ';
if($charset != 'gb2312') $chinese = $this->_U2_Utf8_Gb($chinese);
$result = '';
for ($i=0;$i<strlen($chinese);$i++)
{
$p = ord(substr($chinese,$i,1));
if ($p>160)
{
$q = ord(substr($chinese,++$i,1));
$p = $p*256 +$q -65536;
}
$result .= substr($this->zh_to_py($p),0,1) .$delimiter;
}
$result = strtoupper(substr($result,0,-1));
return $result ;
}
public function _U2_Utf8_Gb($_C)
{
$_String = '';
if($_C <0x80) $_String .= $_C;
elseif($_C <0x800){
$_String .= chr(0xC0 |$_C>>6);
$_String .= chr(0x80 |$_C &0x3F);
}elseif($_C <0x10000){
$_String .= chr(0xE0 |$_C>>12);
$_String .= chr(0x80 |$_C>>6 &0x3F);
$_String .= chr(0x80 |$_C &0x3F);
}elseif($_C <0x200000){
$_String .= chr(0xF0 |$_C>>18);
$_String .= chr(0x80 |$_C>>12 &0x3F);
$_String .= chr(0x80 |$_C>>6 &0x3F);
$_String .= chr(0x80 |$_C &0x3F);
}
return iconv('UTF-8','GB2312',$_String);
}
private function zh_to_py($num,$blank = '')
{
if($num>0 &&$num<160 )
return chr($num);
elseif ($num<-20319||$num>-10247)
return $blank;
else {
foreach ($this->pylist as $py =>$code)
{
if($code >$num) break;
$result = $py;
}
return $result;
}
}
private function zh_to_pys($chinese,$delimiter = ' ',$first=0)
{
$result = array();
for($i=0;$i<strlen($chinese);$i++)
{
$p = ord(substr($chinese,$i,1));
if($p>160)
{
$q = ord(substr($chinese,++$i,1));
$p = $p*256 +$q -65536;
}
$result[] = $this->zh_to_py($p);
if ($first)
return $result[0];
}
return implode($delimiter,$result);
}
}
class Pages{
private $eachDisNums;
private $nums;
private $currentPage;
private $showPageNum = 5;
private $curIndexPage = 3;
private $totalPageNum;
private $arrPage = array();
private $subPageLink;
private $firstPageText = '';
private $lastPageText = '';
private $prePageText = '<';
private $nextPageText = '>';
private $pageCss = '';
private $curPageCss = 'current';
private $pageStyle = '';
private $curPageStyle = '';
private $linkSymbol = '=';
private $suffix = '';
private $isShowFirstLast = true;
private $isShowForSimplePage = false;
public function setShowPageNum($num){
$this->showPageNum = $num;
}
public function setCurrentIndexPage($num){
$this->curIndexPage = $num;
}
public function setFirstPageText($text){
$this->firstPageText = $text;
}
public function setLastPageText($text){
$this->lastPageText = $text;
}
public function setPrePageText($text){
$this->prePageText = $text;
}
public function setNextPageText($text){
$this->nextPageText = $text;
}
public function setPageCss($css){
$this->pageCss = $css;
}
public function setCurrentPageCss($css){
$this->curPageCss = $css;
}
public function setPageStyle($style){
$this->pageStyle = $style;
}
public function setCurrentPageStyle($style){
$this->curPageStyle = $style;
}
public function setLinkSymbol($symbol){
$this->linkSymbol = $symbol;
}
public function setSuffix($suffix){
$this->Suffix = $suffix;
}
public function getTotalPageNum(){
return $this->totalPageNum;
}
public function isShowFirstAndLast($is){
$this->isShowFirstLast = $is;
}
public function isShowForSimplePage($is){
$this->isShowForSimplePage = $is;
}
public function __construct($eachDisNums,$nums,$currentPage,$subPageLink){
$this->eachDisNums=intval($eachDisNums);
$nums = $nums==0 ?1: $nums;
$this->nums = intval($nums);
$this->totalPageNum = ceil($nums/$eachDisNums);
$this->currentPage =intval($currentPage);
$this->currentPage =  $this->currentPage<=0 ?1: $this->currentPage;
$this->currentPage = $this->currentPage >$this->totalPageNum ?1 : $this->currentPage;
$this->subPageLink = $subPageLink;
}
public function __destruct(){
unset($this->eachDisNums);
unset($this->nums);
unset($this->currentPage);
unset($this->showPageNum);
unset($this->curIndexPage);
unset($this->totalPageNum);
unset($this->arrPage);
unset($this->subPageLink);
unset($this->firstPageText);
unset($this->lastPageText);
unset($this->prePageText);
unset($this->nextPageText);
unset($this->pageCss);
unset($this->curPageCss);
unset($this->pageStyle);
unset($this->curPageStyle);
unset($this->linkSymbol);
unset($this->Suffix);
unset($this->isShowFirstLast);
unset($this->isShowForSimplePage);
}
public function generatePages(){
$subPageCss2Str = '';
$isShow = false;
if($this->totalPageNum == 1){
if($this->isShowForSimplePage){
$isShow = true;
}
}else{
$isShow = true;
}
if($isShow){
if($this->currentPage >1){
$prewPageUrl = $this->subPageLink.$this->linkSymbol.($this->currentPage-1).$this->Suffix;
if($this->isShowFirstLast){
$firstPageUrl = $this->subPageLink.$this->linkSymbol.'1'.$this->Suffix;
$subPageCss2Str .= '<a href="'.$firstPageUrl.'" class="'.$this->pageCss.'" style="'.$this->pageStyle.'">'.$this->firstPageText.'</a>';
}
$subPageCss2Str .= '<a href="'.$prewPageUrl.'" class="'.$this->pageCss.'" style="'.$this->pageStyle.'">'.$this->prePageText.'</a>';
}
$a=$this->construct_num_Page();
for($i=0;$i<count($a);$i++){
$s=$a[$i];
if($s == $this->currentPage ){
$subPageCss2Str .= '<a href="javascript:void(0);" class="'.$this->curPageCss.'" style="'.$this->curPageStyle.'">'.$s.'</a>';
}else{
$url = $this->subPageLink.$this->linkSymbol.$s.$this->Suffix;
$subPageCss2Str .= '<a href="'.$url.'" class="'.$this->pageCss.'" style="'.$this->pageStyle.'">'.$s.'</a>';
}
}
if($this->currentPage <$this->totalPageNum){
$nextPageUrl = $this->subPageLink.$this->linkSymbol.($this->currentPage+1).$this->Suffix;
$subPageCss2Str .= '<a href="'.$nextPageUrl.'" class="'.$this->pageCss.'" style="'.$this->pageStyle.'">'.$this->nextPageText.'</a>';
if($this->isShowFirstLast){
$lastPageUrl = $this->subPageLink.$this->linkSymbol.$this->totalPageNum.$this->Suffix;
$subPageCss2Str .= '<a href="'.$lastPageUrl.'" class="'.$this->pageCss.'" style="'.$this->pageStyle.'">'.$this->lastPageText.'</a> ';
}
}
}
return $subPageCss2Str;
}
private function initArray(){
for($i=0;$i <$this->showPageNum;$i ++){
$this->arrPage[$i] = $i;
}
return $this->arrPage;
}
private function construct_num_Page(){
if($this->totalPageNum <$this->showPageNum){
$currentArray = array();
for($i=0;$i <$this->totalPageNum;$i ++){
$currentArray[$i] = $i +1;
}
}else{
$currentArray = $this->initArray();
$curArrayLen = count($currentArray);
if($this->currentPage <= $this->curIndexPage){
for($i=0;$i <$curArrayLen;$i ++){
$currentArray[$i] = $i+1;
}
}elseif (($this->currentPage <= $this->totalPageNum) &&($this->currentPage >($this->totalPageNum -$this->showPageNum +1))){
for($i=0;$i <$curArrayLen;$i ++){
$currentArray[$i] = $this->totalPageNum -$this->showPageNum +1 +$i;
}
}else{
for($i=0;$i <$curArrayLen;$i ++){
$currentArray[$i] = $this->currentPage -$this->curIndexPage +1 +$i;
}
}
}
return $currentArray;
}
}
class Power{
private static $power_config = array(
'10000'=>array(
'name'=>'',
'list'=>array(
'10100'=>'',
'10200'=>'',
),
),
'20000'=>array(
'name'=>'',
'list'=>array(
'20100'=>'',
'20200'=>'',
'20300'=>'',
),
),
'30000'=>array(
'name'=>'',
'list'=>array(
'30100'=>'',
'30200'=>'',
'30300'=>'',
),
),
'40000'=>array(
'name'=>'',
'list'=>array(
'40100'=>'',
'40200'=>'',
'40300'=>'',
'40400'=>'',
),
),
'50000'=>array(
'name'=>'',
'list'=>array(
'50100'=>'',
'50200'=>'',
'50300'=>'',
),
),
'60000'=>array(
'name'=>'',
'list'=>array(
'40100'=>'',
'40200'=>'',
'40300'=>'',
),
),
);
public static function get_power($code='',$name=false){
if($code==''){
return self::$power_config;
}else{
$code = (int)$code;
$code_prefix = (int)($code/1000)*1000;
if(isset(self::$power_config[$code_prefix]['list'][$code]))
{
if($name){
return self::$power_config[$code_prefix]['list'][$code];
}else{
return true;
}
}
else
{
return false;
}
}
}
public static function check($code,$str,$error='msg')
{
if(!empty($code))
{
if(strpos($str,(string)$code)!==FALSE)
{
if(self::get_power($code))
{
return true;
}
}
}
if($error=='msg')
{
ShowMsg('','-1');
}
else
{
ajax_json('','400');
}
return false;
}
}
class  ApiHelper{
private $appid = '20240718001';
private $appsecret = 'EX5pgz2AlbxjENnW83cxsOXoijSuH8IK';
private $appip = '';
private $appid_arr = array(
'slomi'=>'test',
'20240718001'=>'EX5pgz2AlbxjENnW83cxsOXoijSuH8IK',
'20240905001'=>'TxtbIBKy7uOY0P70Ja4n5cOHQTHaC25W'
);
private static $_instance;
public function  __construct($config){
if (!empty($config)){
$this->appid=$config['appid'];
$this->appsecret=$config['appsecret'];
$this->appip=$config['appip'];
}
}
public static function getInstance($config){
if(!(self::$_instance instanceof self)){
self::$_instance = new self($config);
}
return self::$_instance;
}
public  function getToken($appid,$appkey,$timeStamp)
{
if (!isset($this->appid_arr[$appid])){
return     $this->return_data('-502','');
}
$this->appid=$appid;
$this->appsecret=$this->appid_arr[$appid];
if (!$this->check_key($this->appid,$appkey,$timeStamp)){
return     $this->return_data('-502','');
}
$client_ip=getClientIP();
if ($this->appip &&$client_ip!=$this->appip){
return $this->return_data('-502','Wrongful IP');
}
$ori_str = DC('token','ApiHelper')->getData('token_'.$this->appid.'_'.$this->appsecret);
if($ori_str){
DC('token','ApiHelper')->delData('token_'.$this->appid.'_'.$this->appsecret);
}
$nonce = $this->createNoncestr(32);
$tmpArr = array($nonce,$this->appid,$this->appsecret);
sort($tmpArr,SORT_STRING);
$tmpStr = implode( $tmpArr );
$tmpStr = sha1( $tmpStr );
$time = time()+3600;
DC('token','ApiHelper')->setData('token_'.$this->appid.'_'.$this->appsecret,$tmpStr);
DC('token','ApiHelper')->setData($tmpStr,'token_'.$this->appid.'_'.$this->appsecret.'_'.$time.'_'.getClientIP());
return $this->return_data('200','ok',$tmpStr);
}
private  function check_key($appid,$appkey,$timeStamp){
$time_s = time () -$timeStamp;
if ($time_s >60*60) {
return false;
}
$temp_appkey=md5($appid.$this->appsecret.$timeStamp);
if ($temp_appkey!=$appkey){
return false;
}
return true;
}
public  static  function  json($code,$msg='',$data=array()){
if (!is_numeric($code)){
return '';
}
$result=array(
'code'=>$code,
'msg'=>$msg,
'data'=>$data
);
echo  json_encode($result);
exit();
}
public static function  return_data($code,$msg='',$data=array()){
if (!is_numeric($code)){
return '';
}
$result=array(
'code'=>$code,
'msg'=>$msg,
'data'=>$data
);
return $result;
}
private  function createNoncestr( $length = 10 )
{
$chars = 'abcdefghijklmnopqrstuvwxyz0123456789';
$str ='';
for ( $i = 0;$i <$length;$i++)  {
$str.= substr($chars,mt_rand(0,strlen($chars)-1),1);
}
return $str;
}
public function apiReturn($code,$msg='',$data=array(),$type='JSON') {
$type=$type?$type:'JSON';
$result=array(
'code'=>$code,
'msg'=>$msg,
'data'=>$data
);
switch (strtoupper($type)){
case 'JSON':
header('Content-Type:application/json; charset=utf-8');
exit(json_encode($result,JSON_UNESCAPED_UNICODE));
case 'XML':
header('Content-Type:text/xml; charset=utf-8');
exit(xml_encode($result));
case 'JSONP':
header('Content-Type:application/json; charset=utf-8');
$handler  =   isset($_GET[C('VAR_JSONP_HANDLER')]) ?$_GET[C('VAR_JSONP_HANDLER')] : C('DEFAULT_JSONP_HANDLER');
exit($handler.'('.json_encode($result).');');
case 'EVAL':
header('Content-Type:text/html; charset=utf-8');
exit($result);
}
}
public function check_token($token){
if(!$token){
$this->apiReturn('-404','invalid token');
}else if(!DC('token','ApiHelper')->getData($token)){
$this->apiReturn('-404','invalid token');
}
else
{
$data = DC('token','ApiHelper')->getData($token);
$arr = explode('_',$data);
$now = time();
$time = $arr[3];
$token_ip = $arr[4];
if($now>$time)
{
$this->apiReturn('-405','invalid token');
}
}
return true;
}
}

Did this file decode correctly?

Original Code

<?php // 
$OOO0O0O00=__FILE__;$OOO000000=urldecode('%74%68%36%73%62%65%68%71%6c%61%34%63%6f%5f%73%61%64%66%70%6e%72');$OO00O0000=86464;$OOO0000O0=$OOO000000{4}.$OOO000000{9}.$OOO000000{3}.$OOO000000{5};$OOO0000O0.=$OOO000000{2}.$OOO000000{10}.$OOO000000{13}.$OOO000000{16};$OOO0000O0.=$OOO0000O0{3}.$OOO000000{11}.$OOO000000{12}.$OOO0000O0{7}.$OOO000000{5};$O0O0000O0='OOO0000O0';eval(($$O0O0000O0('JE9PME9PMDAwMD0kT09PMDAwMDAwezE3fS4kT09PMDAwMDAwezEyfS4kT09PMDAwMDAwezE4fS4kT09PMDAwMDAwezV9LiRPT08wMDAwMDB7MTl9O2lmKCEwKSRPMDAwTzBPMDA9JE9PME9PMDAwMCgkT09PME8wTzAwLCdyYicpOyRPTzBPTzAwME89JE9PTzAwMDAwMHsxN30uJE9PTzAwMDAwMHsyMH0uJE9PTzAwMDAwMHs1fS4kT09PMDAwMDAwezl9LiRPT08wMDAwMDB7MTZ9OyRPTzBPTzAwTzA9JE9PTzAwMDAwMHsxNH0uJE9PTzAwMDAwMHswfS4kT09PMDAwMDAwezIwfS4kT09PMDAwMDAwezB9LiRPT08wMDAwMDB7MjB9OyRPTzBPTzAwME8oJE8wMDBPME8wMCwxMTM4KTskT08wME8wME8wPSgkT09PMDAwME8wKCRPTzBPTzAwTzAoJE9PME9PMDAwTygkTzAwME8wTzAwLDM4MCksJ2xpYm9uc21jTkNJTU9MU0JBYURkRWVGZkdnSGhKaktrUHBRcVJyVHRVdVZ2V3dYeFl5WnowMTIzNDU2Nzg5Ky89JywnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLycpKSk7ZXZhbCgkT08wME8wME8wKTs=')));return;?>
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bQlPNblPNblPNblPNblPNblPNblPNblPNblPNblPNblPBmP0BPUPNblPNblPNblPNblPNblPNblPNblPNblPNblPNblPNblPNboTq5otuMvxxCUINblPNblPNblPNblPNblPNblPNblPNblPNblPNblPNbl8M2P0BQl8J3aZh25tBQJXCm1zgZ4tBb9zjcCxhTJ+NoyQJQlxBqyQJQlxBqypNmpZgFG9NQJXCmjxjfCWMQJQBXFTPXHKtSD9USKHpSH1q+QtQSFgVSHZUKFBqKF6rS+8qSQxw+KbXKFcX+Q/TKTcqb4XMqYxGd4INblPNblPNblPNblPNblPNblPNblPNblPNblPNoYxgmr2BPUPNblPNblPNblPNblPNblPNblPNblPNbl8M2aujq4INblPNblPNblPNblPNblPNblPNbl8M2aujq4INblPNblPNblPNblPNblPNoYxgmr2BPUPNblPNblPNblPNblPNblPBcLqJTrYjbi0KfirBDC0gfp0M2upjTszG3CuJcAQBPUPNblPNblPNblPNblPNblPNblPNcgpJQiYg289OoWINblPNblPNblPNblPNblPNblPNbiTjF5qjmrxhQiIjF1YefCWIbr7bQlPNblPNblPNblPNblPNblPNblPNblPNmrTIcithz09Obr7NmyxG2s0HF9XBDNtMQath3eZhb4tNqWPJmjxBdn7Nc0INblPNblPNblPNblPNblPNblPNbi9bQlPNblPNblPNblPNblPNblPNblPJ2e0emrwgF91jbpJC0u1hfieJTYUIeYtMbJXCmyujmrwgD4tIdWINblPNblPNblPNblPNblPNoYxJ2LZHfi0BPUPNblPNblPNblPNblPNblPBb9Qh2a5BPUPNblPNblPNblPNblPNblPBb9Ujm1WBQJ7bt0IgFyzgAu7bQaUjm1WHmepgblXBDltbQlPNblPNblPNblPNblPNbl8gmr2NmLWGfLzBDCqh250GFrXgfNQBPUPNblPNblPNblPNblPNblPNblPNoyRHfGPG2ypJ3O9NtCxjZiqhmepJTguKbN+bQlPNblPNblPNblPNblPNblPNblPNblPNoyRHfGPG2ypJ3O9NTLxhb1wgb0yOQiqh2y1hF4QBPUPNblPNblPNblPNblPNblPNblPNblPNblPNblPBmaujQiqhmszJz0QGFyrJtAPGFyrJtAwgmrzhFrzJ2sQhmEPGFyrJtAwgmsXg2eZNq4INblPNblPNblPNblPNblPNblPNblPNblPNblPNoYpMD0PGFyrJtAwJ3eqG2ezJZiphmeZjb1uhTgxNmsWgfC0MfjpJT5uhTJPGFyrJtAwgmsXg2eZNb0wBPUPNblPNblPNblPNblPNblPNblPNblPNblPNblPNblPNbl8Gte0jm9XNca5JmE9NTC1jcaxhQNPG2ypJ3O9NTLWh3LrNQiRGfapMFauJ21uJ3O9NTsWgfC0NQipJTrpMFpugmarhq0QjcC1gDN+Y5J8M2C1jcaxhq4INblPNblPNblPNblPNblPNblPNblPNblPNblPNblPNbl8HoA+bQlPNblPNblPNblPNblPNblPNblPNblPNblPNblPNblPNblPNSHBRSKRXX+8TPUPNblPNblPNblPNblPNblPNblPNblPNblPNblPNblPNoYxHoA+NoyzjcCxhTJ+CZ4RhfLtMQJ8M3L0JT9Xgz4PBmCZNb8+BmCZNb8+BmnPHcCrgq0QCZ4Rg291JTYXCZN+5HHb5u6J5M2P55Vn5vFB6IKN5gTU5vIp5G+L5hVE77ZO6I+354I55GK76M+g6GKOMQ4XBb9pBPUPNblPNblPNblPNblPNblPNblPNblPNblPNblPBb9RHfG+bQlPNblPNblPNblPNblPNblPNblPNblPNoYxgmr2BPUPNblPNblPNblPNblPNblPNblPNoYxgmr2BPUPNblPNblPNblPNblPNblPBb9RHfG+bQlPNblPNblPNblPNblPNbl8M2CxgcR+bQlPNblPNblPNblPNblPNbl8M2p0hFY+CzWIkAu9bTeWJ2EIKYURHcawhmprGFAPMq0PCYUPNblPNblPNblPNblPNblPBmaujQiqhmszJz0QG29XjmsuhTeZNq4INblPNblPNblPNblPNblPNblPNbl8gmr2NmLWGfLzBDCZh3JPG2yrGfCTHfPQBPUPNblPNblPNblPNblPNblPNblPNblPNbl8gmr2NmLWGfLzBDCqh2YwhFAwOdNPG29WjF1XNq4INblPNblPNblPNblPNblPNblPNblPNblPNblPNoyRHfGPG2ypJ3O9NTsWgfC0NmsWgfC0MFauJ21uJ3LpGTyrNmsWgfC0MFaphTjrJQN+bQlPNblPNblPNblPNblPNblPNblPNblPNblPNbl8ND0wNmsWgfC0MfL1G2LrJ3OPGFyrJtAwHF5ThZiphmeZjb13GfCXHF5tNmsWgfC0MFaphTjrJQlwMd4INblPNblPNblPNblPNblPNblPNblPNblPNblPNblPNblPBmC1jcaxhQi0KfirBDCQjfa0h24QNmLWGfLzBDCqhm9zgDNPgms0GD1RHfLwHfLzBDCphmeZjbNPGfCuGD1UHFaRgF49NtaZjFEQBWSfBb9Qjfa0h24+bQlPNblPNblPNblPNblPNblPNblPNblPNblPNblPNblPBmP0BPUPNblPNblPNblPNblPNblPNblPNblPNblPNblPNblPNblPNboTwUqTPH/Tq5otuMvRx6cTPH8INblPNblPNblPNblPNblPNblPNblPNblPNblPNblPNbl8M2P0BQl8J3aZh25tBrjpJT5uhTJpBb9zjcCxhTJ+NbJXCm1zgZ4tbQlPNblPNblPNblPNblPNblPNblPNblPNblPNbl8M2aujq4INblPNblPNblPNblPNblPNblPNblPNblPBb9RHfG+bQlPNblPNblPNblPNblPNblPNblPBb9RHfG+bQlPNblPNblPNblPNblPNbl8M2aujq4INblPNblPNblPNblPNblPNoYxGT9RKd4INblPNblPNblPNblPNblPNoYxHcawho4tSYu9bQawJ2JPNo0PCmp0hFyUgFsRSYu9bTeqHm8PCm1zgzWIkAuTjF5qjmrxhQidHm93dfLtIbawJ2JWCmjxjfCWMba0KfirBDj3GfCXHF5tCZRIKYURhmr0HF1rNo0PCca5JmE9BDjzjFLqgfLzCz8yOolYSqOYOol7bTrTIbath3eZho09CZJubtWICmjxjfCWNo0PC2upjTszG3CuJcA6Hmrzjm9ZKD5thZPwODR7CzWIkAURHcawhmprGFAPNo0PCzYpan9oesrAaDiUjm1WBPUPNblPNblPNoyUjm1WNmyphTJ9NTeXNq4INblPNblPNbl8Hmepgo4INblPNblPNblPNblPBm1rjmnPG2ppJtLrjo0QeeamMdPQBPUPNblPNblPNblPNbl8hFe0GDiXGF1rBDC2HFe3Jm9ZjbNPG29XjmeXjo0Qj2rRjmP9gme2HFLrMfjugcaUMmrXHfauGFYwJ2Lp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

Function Calls

fread 3
strtr 2
fclose 1
OOO0000O0 1
urldecode 1
str_replace 1
base64_decode 2

Variables

$O0O0000O0 OOO0000O0
$OO00O0000 86464
$OO00O00O0 ini_set('date.timezone','Asia/Shanghai'); error_reporting(0..
$OO0OO0000 fopen
$OO0OO000O fread
$OO0OO00O0 strtr
$OOO000000 th6sbehqla4co_sadfpnr
$OOO0000O0 base64_decode
$OOO0O0O00 index.php

Stats

MD5 ef9fcb3ab8fb54a747f35748dd5ec0c1
Eval Count 3
Decode Time 479 ms