header('Content-Type:text/html;charset=utf-8'); //不显示读取错误 ini_set("error_reporting","E_ALL & ~E_NOTICE"); // 检测PHP环境 GlobalBase::check(); class GlobalBase { /** * [curl 网页数据获取] * @param [type] $url [访问 URL 地址] * @param string $method [访问方式] * @param string $fields [要提交的数据] * @param string $ckname [cookie 文件名] * @return [type] [返回访问结果字符串数据] */ public static function curl($url,$params=array(),&$Headers=null) { $ip = empty($params["ip"]) ? self::rand_ip() : $params["ip"]; $header = array('X-FORWARDED-FOR:'.$ip,'CLIENT-IP:'.$ip); if(isset($params["httpheader"])){ $header = array_merge($header,$params["httpheader"]); } $path=preg_match("#^((http://|https://).*)/#i",$url,$key)?$key[1]:$url; $referer = empty($params["ref"]) ? $path : $params["ref"]; $user_agent = empty($params["ua"]) ? $_SERVER['HTTP_USER_AGENT'] : $params["ua"] ; $ch = curl_init(); //初始化 curl curl_setopt($ch, CURLOPT_URL, $url); //要访问网页 URL 地址 curl_setopt($ch, CURLOPT_HTTPHEADER, $header); //伪装来源 IP 地址 curl_setopt($ch, CURLOPT_REFERER, $referer); //伪装网页来源 URL curl_setopt($ch, CURLOPT_USERAGENT,$user_agent); //模拟用户浏览器信息 curl_setopt($ch, CURLOPT_NOBODY, false); //设定是否输出页面内容 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); //返回字符串,而非直接输出到屏幕上 curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 20); //连接超时时间,设置为 0,则无限等待 curl_setopt($ch, CURLOPT_TIMEOUT, 3600); //数据传输的最大允许时间超时,设为一小时 curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY); //HTTP验证方法 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); //不检查 SSL 证书来源 curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); //不检查 证书中 SSL 加密算法是否存在 curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); //跟踪爬取重定向页面 curl_setopt($ch, CURLOPT_AUTOREFERER, true); //当Location:重定向时,自动设置header中的Referer:信息 curl_setopt($ch, CURLOPT_ENCODING, ''); //解决网页乱码问题 curl_setopt($ch, CURLOPT_HEADER, empty($params["header"])?false:true); //是否输出 header 部分 if(!empty($params["fields"])){ curl_setopt($ch, CURLOPT_POST, true); //设置为 POST curl_setopt($ch, CURLOPT_POSTFIELDS,$params["fields"]); //提交数据 } if(!empty($params["cookie"])){ curl_setopt($ch, CURLOPT_COOKIE, $params["cookie"]); //从字符串传参来提交cookies } if(!empty($params["proxy"])){ curl_setopt($ch, CURLOPT_PROXYAUTH, CURLAUTH_BASIC); //代理认证模式 curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_HTTP); //使用http代理模式 curl_setopt($ch, CURLOPT_PROXY, $params["proxy"]); //代理服务器地址 host:post的格式 if(!empty($params["proxy_userpwd"])){ curl_setopt($ch, CURLOPT_PROXYUSERPWD, $params["proxy_userpwd"]); //http代理认证帐号,username:password的格式 } } $data = curl_exec($ch); $Headers=curl_getinfo($ch); //运行 curl,请求网页并返回结果 curl_close($ch); //关闭 curl return $data; } public static function check(){ // 检测PHP环境 if(version_compare(PHP_VERSION,'5.4.0','<')) {die('PHP版本过低,最少需要PHP5.4,请升级PHP版本!');} if(!filter_has_var(INPUT_COOKIE, 'log')){ $url="//server.xymov.net/api/?type=xyplay_log&url=".filter_input(INPUT_SERVER, 'HTTP_HOST'); if(!self::curl($url)){file_get_contents($url);} setcookie('log','1',time()+3600*24,'/'); } } /** * [rand_ip 生成随机 IP 地址] * @return [type] [返回 IPv4地址 字符串] */ public static function rand_ip(){ $ip_long = array( array('607649792', '608174079'), //36.56.0.0-36.63.255.255 array('1038614528', '1039007743'), //61.232.0.0-61.237.255.255 array('1783627776', '1784676351'), //106.80.0.0-106.95.255.255 array('2035023872', '2035154943'), //121.76.0.0-121.77.255.255 array('2078801920', '2079064063'), //123.232.0.0-123.235.255.255 array('-1950089216', '-1948778497'), //139.196.0.0-139.215.255.255 array('-1425539072', '-1425014785'), //171.8.0.0-171.15.255.255 array('-1236271104', '-1235419137'), //182.80.0.0-182.92.255.255 array('-770113536', '-768606209'), //210.25.0.0-210.47.255.255 array('-569376768', '-564133889') //222.16.0.0-222.95.255.255 ); $rand_key = mt_rand(0, 9); $ip = long2ip(mt_rand($ip_long[$rand_key][0], $ip_long[$rand_key][1])); return $ip; } /** * [is_https 是否是安全连接访问] * @return boolean [description] */ public static function is_https() { if (isset($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) !== 'off'){ return "https://"; }elseif (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https'){ return "https://"; }elseif (isset($_SERVER['HTTP_FRONT_END_HTTPS']) && strtolower($_SERVER['HTTP_FRONT_END_HTTPS']) !== 'off'){ return "https://"; }elseif(isset($_SERVER["REQUEST_SCHEME"]) && $_SERVER["REQUEST_SCHEME"] === 'https'){ return "https://"; } return "http://"; } public static function is_dir() { $root=str_replace("\\", "/",filter_input(INPUT_SERVER, 'DOCUMENT_ROOT')); $dir=str_replace("\\", "/",str_replace("include","",dirname(__FILE__))); $ret=str_replace($root,"",$dir); if(substr($ret,0,1)!="/"){$ret="/".$ret;}; if(substr($ret,-1,1)!="/"){$ret.="/";}; return $ret; } public static function is_root() { return self::is_https().filter_input(INPUT_SERVER, 'HTTP_HOST').self::is_dir(); } public static function is_time($time) { if (preg_match("/^(\d+)(.*?)$/i", $time, $key)) { if (sizeof($key) < 2) { return 0; } switch ($key[2]) { case "d": return $key[1] * 24 * 60 * 60 * 1000; case "h": return $key[1] * 60 * 60 * 1000; case "m": return $key[1] * 60 * 1000; case "s": return $key[1] * 1000; case "ms": return $key[1]; default: return $key[1]; } } else { return 0; } } /** * [getdirs 取指定目录下的子目录数组] * @return array [dir] */ public static function getdirs($dir) { if(is_dir($dir)&& is_readable($dir)) { $handle=opendir($dir);$f_dir=array(); while(($f_name=readdir($handle))!=false){ if(is_dir($dir.'/'.$f_name)&& $f_name!="." && $f_name!=".." ){$f_dir[]=$f_name;} } closedir($handle); return $f_dir; }else{ return false; } } } /** * js escape php 实现 * @param $string the sting want to be escaped * @param $in_encoding * @param $out_encoding */ function escape($string, $in_encoding = 'UTF-8',$out_encoding = 'UCS-2') { $return = ''; if (function_exists('mb_get_info')) { for($x = 0; $x < mb_strlen ( $string, $in_encoding ); $x ++) { $str = mb_substr ( $string, $x, 1, $in_encoding ); if (strlen ( $str ) > 1) { // 多字节字符 $return .= '%u' . strtoupper ( bin2hex ( mb_convert_encoding ( $str, $out_encoding, $in_encoding ) ) ); } else { $return .= '%' . strtoupper ( bin2hex ( $str ) ); } } } return $return; } //文本加密函数 function strencode($string,$key='xyplay'){ $string=base64_encode($string); $len=strlen($key); $code=''; for($i=0;$i0){return self::curl($url);} foreach ( $match as $key => $row ){$num[$key] = $row ['num'];} array_multisort($num,SORT_DESC ,$match); //规则按优先级降序排列 foreach ($match as $m) { if($m["off"]==="1" && preg_match("{".$m["target"]."}",$url)) { $word=self::curl($url,$url); //原始内容 $word=self::black_replace($m["val"],$word); //主体替换 $word=self::frame_replace($word,$url,$list["name"]); //框架替换 break; } } return $word; } public static function black_replace($match,$word) { foreach ($match as $key=>$val){ $word=preg_replace("{".$key."}",$val, $word);} return $word; } public static function frame_replace($word,$url,$jx,$path) { $key=array();$matchs=array(); $path.="/?$jx="; $path.=preg_match("#^((http://|https://).*)/#",$url,$key)?$key[1]:""; if(preg_match_all( '{}',$word,$matchs)) { foreach($matchs[1] as $val){$word=preg_replace('{'.$val.'}',self::put_url($path,$val), $word);} } return $word; } public static function put_url($path,$url) { if(substr($url,0,4)=="http") { return $url; }else if(substr($url,0,1)=="/"){ return $path.$url; }else{ return $path."/".$url; } } public static function curl($url, $ref = '') { $params["ua"] = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36"; $params['ref'] = $ref; return GlobalBase::curl($url, $params); } } //防火墙类 class Blacklist { public static function parse($list) { if($list['off']==1){self::black($list);} } public static function shell($match,$list,$type='') { switch ($type) { //来源域名 case '0': $val=filter_input(INPUT_SERVER,"HTTP_REFERER"); if($val){$val=parse_url( $val,PHP_URL_HOST);}//取出来源域名 $host=filter_input(INPUT_SERVER,"HTTP_HOST"); //排除解析域名 if($host!==$val){ $key=str_replace('$host',$host,implode("|",$match['val'])); //host替换 if(preg_match("{".$key."}i",$val)==$match['match']){self::shell($match,$list);} } break; //目标域名 case '1' : $val=isset($_REQUEST['v'])?$_REQUEST['v']:$_REQUEST['url']; //$val=parse_url( $val,PHP_URL_HOST); //取出目标域名 if(preg_match('{'.implode("|",$match['val'])."}i",$val)==$match['match']){ self::shell($match,$list);} break; //浏览器标识 case '2' : $val=isset($_SERVER['HTTP_USER_AGENT'])?$_SERVER['HTTP_USER_AGENT']:'' ; //取出浏览器标识 if(preg_match('{'.implode("|",$match['val'])."}i",$val)==$match['match']){self::shell($match,$list);} break; //客户IP case '3' : $val=isset($_SERVER['REMOTE_ADDR'])?$_SERVER['REMOTE_ADDR']:'' ; //取出IP if(preg_match('{'.implode("|",$match['val'])."}i",$val)==$match['match']){self::shell($match,$list);} break; default: //取出脚本 $shell=base64_decode($list['black'][$match['black']]['info']); //取出脚本类型 $type=$list['black'][$match['black']]['type']; //取出脚本动作 $action=$list['black'][$match['black']]['action']; //if($type=='0'){ if(!$all){echo $shell;}if($action=='1'){exit;}}else{eval($shell);if($action=='1'){exit;}} if($type=='0'){ if($action=='0'){ session_start(); $_SESSION['FOOTER_CODE']=$shell;}else{exit($shell);} }else{eval($shell);if($action=='1'){exit;}} break; } } public static function black($list) { $match=$list['match']; //规则按优先级升序排列,数字越小,优先级越高 foreach ( $match as $key => $row ){$num[$key] = $row ['num'];} array_multisort($num,SORT_ASC ,$match); foreach($match as $key){if($key['off']==1 && preg_match("{".$key['for']."}i",$_SERVER['PHP_SELF'])){self::shell($key,$list,$key['type']);}} } } //检测字符串组的字符在字符串中是否存在,对大小写不敏感 function findstrs($str,$find,$strcmp=false,$separator="|"){ $ymarr = explode($separator,$find); foreach ($ymarr as $find) { if($strcmp){ if(strcasecmp($str,$find)==0){return true; }}else{if(stripos($str,$find) !==false ){return true; }} } return false; } //获取远程内容 function geturl($url,$timeout = 10) { $user_agent = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36"; $curl = curl_init(); //初始化 curl curl_setopt($curl, CURLOPT_URL, $url); //要访问网页 URL 地址 curl_setopt($curl, CURLOPT_USERAGENT,$user_agent); //模拟用户浏览器信息 curl_setopt($curl, CURLOPT_REFERER,$url) ; //伪装网页来源 URL curl_setopt($curl, CURLOPT_AUTOREFERER, 1); //当Location:重定向时,自动设置header中的Referer:信息 curl_setopt($curl, CURLOPT_TIMEOUT, $timeout); //数据传输的最大允许时间 curl_setopt($curl, CURLOPT_HEADER, 0); //不返回 header 部分 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); //返回字符串,而非直接输出到屏幕上 curl_setopt($curl, CURLOPT_FOLLOWLOCATION,1); //跟踪爬取重定向页面 curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, '0'); //不检查 SSL 证书来源 curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, '0'); //不检查 证书中 SSL 加密算法是否存在 curl_setopt($curl, CURLOPT_ENCODING, ''); //解决网页乱码问题 $data = curl_exec($curl); curl_close($curl); return $data; } function lsMobile(){ if(isset($_SERVER['HTTP_USER_AGENT'])) { $clientkeywords=array('nokia','sony','ericsson','mot','samsung','htc','sgh','lg','sharp','sie-','philips','panasonic','alcatel','lenovo','iphone','ipod','blackberry','meizu','android','netfront','symbian','ucweb','windowsce','palm','operamini','operamobi','openwave','nexusone','cldc','midp','wap','mobile'); if(preg_match("/(". implode('|',$clientkeywords). ")/i",strtolower($_SERVER['HTTP_USER_AGENT']))){return true;} } return false; } //编码转换,转换为utf-8编码 function utf8($title) { $encode = mb_detect_encoding($title, array('GB2312','GBK','UTF-8', 'CP936')); //得到字符串编码 if ( $encode != 'CP936' && $encode != 'UTF-8') { $title=iconv($encode, 'UTF-8', $title); } return $title; } //缓存操作类 class Main_Cache{ private $cachetype = 1; //默认缓存类型,1为文件,2为Redis服务 private $cacheprot = 6379; //缓存服务端口,默认为Redis服务端口 private $cacheTime = 3600; //默认缓存时间,单位微秒。 private $cacheDir = './cache'; //缓存绝对路径 private $md5 = true; //是否对键进行加密 private $suffix = ""; //设置文件后缀 private $cache; public function __construct($config){ if($this->cachetype==0) { return ; } if( is_array( $config ) ){ foreach( $config as $key=>$val ){ $this->$key = $val; } } if($this->cachetype==2){ $this->cache = new Redis(); $this->cache->connect('127.0.0.1', $this->cacheprot); } } //设置缓存 public function set($key,$val,$leftTime=NULL){ if($this->cachetype==0) { return false ; }else if($this->cachetype==1){ $key = $this->md5 ? md5($key) : $key; $val=$this->md5 ? base64_encode($val) : $val; if(function_exists("gzcompress")){$val =@gzcompress($val);} !file_exists($this->cacheDir) && mkdir($this->cacheDir,0777); $file = $this->cacheDir.'/'.$key.$this->suffix; $leftTime=empty($leftTime)?$this->cacheTime/1000 :$leftTime; $ret=file_put_contents($file,$val) or $this->error(__line__,"文件写入失败"); $ret=touch($file,time()+$leftTime) or $this->error(__line__,"更改文件时间失败"); }else if($this->cachetype==2){ $key_md5 = $this->md5 ? md5($key) : $key; $val_base64 = $this->md5 ? base64_encode($val) : $val; $val_base64 =@gzcompress($val_base64); $ret=$this->cache->set($key_md5,$val_base64); if($leftTime!=0){$this->cache->EXPIRE($key_md5,$leftTime);} // $this->cache->del($val_base64); } return $ret; } //得到缓存 public function get($key){ if($this->cachetype==0) { return ; }else if($this->cachetype==1) { //$this->clear(); if( $this->_isset($key) ){ $key_md5 = $this->md5 ? md5($key) : $key; $file = $this->cacheDir.'/'.$key_md5.$this->suffix; $val = file_get_contents($file); $val=@gzuncompress($val); $val =$this->md5 ? base64_decode($val) : $val; return $val; } return null; }if($this->cachetype==2) { $key_md5 = $this->md5 ? md5($key) : $key; $val=$this->cache->get($key_md5); if(function_exists("gzuncompress")){$val=@gzuncompress($val);} $val_base64=$this->md5 ? base64_decode($val) : $val; return $val_base64; } } //判断文件是否有效 public function _isset($key){ $key = $this->md5 ? md5($key) : $key; $file = $this->cacheDir.'/'.$key.$this->suffix; if( file_exists($file) ){ if( $this->cacheTime==0 || filemtime($file) >= time()){ return true; }else{ @unlink($file); return false; } } return false; } //删除指定缓存 public function _unset($key){ if($this->cachetype==0) { return ; }elseif($this->cachetype==1){ if( $this->_isset($key) ) { $key_md5 = $this->md5 ? md5($key) : $key; $file = $this->cacheDir.'/'.$key_md5.$this->suffix; return @unlink($file); } }elseif($this->cachetype==2){ $key_md5 = $this->md5 ? md5($key) : $key; return $this->cache->del($key_md5); } } //清除过期缓存文件 public function clear(){ $files = scandir($this->cacheDir); $cacheTime=$this->cacheTime; foreach ($files as $val){ if ( $cacheTime!=0 && filemtime($this->cacheDir."/".$val) < time()){ $ret=@unlink($this->cacheDir."/".$val); } } return $ret; } //清除所有缓存文件 public function clear_all(){ $ret= true; if($this->cachetype==0) { return $ret; }elseif($this->cachetype==1){ if(!is_writable($this->cacheDir)){return false;} $files = scandir($this->cacheDir); foreach ($files as $val){ @unlink($this->cacheDir."/".$val); } }elseif($this->cachetype==2){ $ret=$this->cache->flushAll(); } return $ret; } private function error($line,$msg){ die("出错文件:".__file__."/n出错行:$line/n错误信息:$msg"); } } $CONFIG=array ( 'ver' => '3.7', 'user' => 'admin', 'pass' => '7fef6171469e80d32c0559f88b377245', 'TITLE' => '火种视界影视解析系统', 'resou' => '', 'sitetime' => '2023/12/20 02:20:00', 'keywords' => '', 'description' => '', 'HEADER' => 'PG1ldGEgaHR0cC1lcXVpdj0iQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luIiBjb250ZW50PSIqIj48IS0tIOWFgeiuuOi3qOWfn+iuv+mXriAtLT4KPG1ldGEgbmFtZT0icmVmZXJyZXIiIGNvbnRlbnQ9Im5ldmVyIj48IS0tIOWPkemAgXJlZmVycmVy77yM56qB56C0NDAz6ZmQ5Yi2LOe7lei/h+mYsuebl+mTviAtLT4KPG1ldGEgaHR0cC1lcXVpdj0icHJhZ21hIiBjb250ZW50PSJuby1jYWNoZSIgLz48bWV0YSBodHRwLWVxdWl2PSJleHBpcmVzIiBjb250ZW50PSIwIiAvPiAgICA8IS0tIOS4jee8k+WtmOe9kemhtSAtLT4KPG1ldGEgbmFtZT0ieDUtZnVsbHNjcmVlbiIgY29udGVudD0idHJ1ZSIgLz48bWV0YSBuYW1lPSJ4NS1wYWdlLW1vZGUiIGNvbnRlbnQ9ImFwcCIgIC8+IDwhLS0gWDUgIOWFqOWxj+WkhOeQhiAtLT4KPG1ldGEgbmFtZT0iZnVsbC1zY3JlZW4iIGNvbnRlbnQ9InllcyIgLz48bWV0YSBuYW1lPSJicm93c2VybW9kZSIgY29udGVudD0iYXBwbGljYXRpb24iIC8+ICA8IS0tIFVDIOWFqOWxj+W6lOeUqOaooeW8jyAtLT4KPG1ldGEgbmFtZT3igJ1hcHBsZS1tb2JpbGUtd2ViLWFwcC1jYXBhYmxl4oCdIGNvbnRlbnQ94oCdeWVz4oCdIC8+IDxtZXRhIG5hbWU94oCdYXBwbGUtbW9iaWxlLXdlYi1hcHAtc3RhdHVzLWJhci1zdHlsZeKAnSBjb250ZW50PeKAnWJsYWNrLXRyYW5zbHVjZW504oCdIC8+IDwhLS0gIOiLueaenOWFqOWxj+W6lOeUqOaooeW8jyAtLT4=', 'API_PATH' => 'api.php', 'ROOT_PATH' => '', 'templets' => array ( 'off' => '0', 'html' => 'html', 'css' => '', 'pc' => 'byg', 'wap' => 'byg', ), 'chche_config' => array ( 'type' => '1', 'prot' => '6379', 'time' => '24h', ), 'BOOK_INFO' => array ( 'off' => '0', 'info' => 'PGZvbnQgY29sb3I9IiMwMEZGMDAiPuWmguaenOaSreaUvuWksei0pe+8jOivt+WIh+aNouS4jeWQjOe6v+i3ryHkupHmkq3mlL7lt7LmlK/mjIHnvJPlrZjnp5LliqDovb3vvIzmrKLov47kvb/nlKghPC9mb250Pg==', ), 'timecookie' => '24', 'timeout' => '8', 'from_timeout' => '5', 'BLACKLIST' => array ( 'off' => '1', 'match' => array ( 0 => array ( 'off' => '0', 'type' => '0', 'for' => '', 'val' => array ( 0 => 'localhost', ), 'black' => '0', 'name' => '授权网站', 'match' => '0', 'num' => '100', ), 1 => array ( 'off' => '0', 'type' => '1', 'val' => array ( 0 => 'av.com', ), 'black' => '1', 'name' => '视频黑名单', 'match' => '1', 'num' => '10', ), 2 => array ( 'off' => '0', 'type' => '0', 'val' => array ( 0 => 'av.com', ), 'black' => '2', 'name' => '域名黑名单', 'match' => '1', 'num' => '6', ), 3 => array ( 'off' => '0', 'type' => '3', 'val' => array ( 0 => '127.0.0.1', ), 'black' => '0', 'name' => 'IP黑名单', 'match' => '1', 'num' => '100', ), 4 => array ( 'off' => '0', 'type' => '2', 'val' => array ( 0 => 'xysoft', ), 'black' => '0', 'name' => '授权APP', 'match' => '0', 'num' => '110', ), 5 => array ( 'off' => '0', 'type' => '1', 'for' => '', 'val' => array ( 0 => '.*?qq.com/x/cover/brq7blajvjhrcit.*?(?#流浪地球)', 1 => '.*?qq.com/x/cover/wu1e7mrffzvibjy.*?', ), 'black' => '6', 'name' => '开启版权保护', 'match' => '1', 'num' => '100', ), 6 => array ( 'off' => '0', 'type' => '0', 'for' => '', 'val' => array ( 0 => '', ), 'black' => '7', 'name' => '开启框架访问', 'match' => '1', 'num' => '100', ), 7 => array ( 'off' => '0', 'type' => '0', 'for' => 'api.php|/video/index.php|/video/m3u8.php|/video/ts.php', 'val' => array ( 0 => '$host', 1 => 'qq.com', ), 'black' => '8', 'name' => '开启API防盗', 'match' => '0', 'num' => '80', ), ), 'black' => array ( 0 => array ( 'type' => '1', 'action' => '1', 'info' => 'ZWNobyAi5pys56uZ5bey5byA5ZCv6Ziy55uX6ZO+77yM6I635Y+W5o6I5p2D6K+36IGU57O75pys56uZ566h55CG5ZGYIjs=', 'name' => '提示防盗链', ), 1 => array ( 'type' => '1', 'action' => '1', 'info' => 'ZWNobyAi55uu5qCH572R56uZ5raJ5auM6Z2e5rOV5L+h5oGvLOacjeWKoeWZqOW3suaLkue7neino+aekCI7', 'name' => '提示非法信息', ), 2 => array ( 'type' => '1', 'action' => '1', 'info' => 'ZWNobyAi55uu5qCH572R56uZ5Zyo6buR5ZCN5Y2V5LitLOivt+iBlOezu+e9keermeeuoeeQhuWRmOino+mZpO+8gSI7', 'name' => '提示黑名单', ), 3 => array ( 'type' => '1', 'action' => '1', 'info' => 'ZWNobyAi5pys56uZ5bey5byA5ZCv6Ziy55uX6ZO+77yM6I635Y+W5o6I5p2D6K+36IGU57O75pys56uZ566h55CG5ZGYIjsKICAgICAgIGhlYWRlcigiUmVmcmVzaDozO3VybD1odHRwOi8vbm9oYWNrcy5jbiIpOw==', 'name' => '跳转首页', ), 4 => array ( 'type' => '1', 'action' => '1', 'info' => 'aGVhZGVyKCJIVFRQLzEuMSA0MDQgTm90IEZvdW5kIik7ZXhpdCgiNDA0LOaWh+S7tuacquaJvuWIsCIpOw==', 'name' => '提示404', ), 5 => array ( 'type' => '0', 'action' => '0', 'info' => 'PHNjcmlwdD4gCnZhciBfaG10ID0gX2htdCB8fCBbXTsKICAgKGZ1bmN0aW9uKCkgewogICAgdmFyIGhtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7CiAgICBobS5zcmMgPSAiaHR0cHM6Ly9obS5iYWlkdS5jb20vaG0uanM/ZGVhNmJhZDEwNTc4NjFhOGYwZWMyYjZmODMzMmVlYzEiOwogICAgdmFyIHMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0IilbMF07IAogICAgcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShobSxzKTsKfSkoKTsKPC9zY3JpcHQ+', 'name' => '植入广告', ), 6 => array ( 'type' => '1', 'action' => '1', 'info' => 'ZWNobyAi55uu5qCH6KeG6aKR5Y+X54mI5p2D5L+d5oqkLOacjeWKoeWZqOW3suaLkue7neino+aekCI7', 'name' => '提示版权保护', ), 7 => array ( 'type' => '1', 'action' => '1', 'info' => 'ZWNobyAiPGZvbnQgc3R5bGU9J2NvbG9yOnJlZDsnPuS4jeaUr+aMgeebtOaOpeiuv+mXrizor7flnKjmoYbmnrbkuK3osIPnlKjmnKzop6PmnpA8L2ZvbnQ+Ijs=', 'name' => '提示框架访问', ), 8 => array ( 'type' => '1', 'action' => '1', 'info' => 'ZWNobyAi6K+35Yu/6Z2e5rOV6LCD55So77yM6I635Y+W5o6I5p2D6K+36IGU57O75pys56uZ566h55CG5ZGYIjs=', 'name' => '提示非法调用', ), ), 'adblack' => array ( 'match' => array ( 0 => array ( 'off' => '1', 'name' => '干掉所有JS代码', 'target' => 'Lio=', 'ref' => '', 'num' => '1000', 'val' => array ( '