*
*/
/*- class-begin -*/
class mdl_serverinfo{
var $allow_change_db = false;
var $maxLevel = 6;
function run(){
$return=array();
$totalScore = 0;
$allow_install = true;
foreach(get_class_methods($this) as $func){
if(substr($func,0,5)=='test_'){
$score = 0;
$result = $this->$func($score);
if($result['items']){
$group[$result['group']]['type'] = $result['type'];
$group[$result['group']]['items'] = array_merge($group[$result['group']['items']]?$group[$result['group']['items']]:array(),$result['items']);
if($allow_install && isset($result['allow_install'])){
$allow_install = $result['allow_install'];
}
if($result['key']){
$return[$result['key']] = &$group[$result['group']]['items'];
}
}
$totalScore += $score;
}
}
$score = floor($totalScore/100)+1;
$rank = min($score,$this->maxLevel+1);
$level = array('E','D','C','B','A','S');
$return['data']=$group;
$return['score']=$totalScore;
$return['level']=$level[$rank-1];
$return['rank'] = $rank;
$return['allow_install'] = $allow_install;
return $return;
}
function test_basic($score){
$items['操作系统']=PHP_OS;
$items['服务器软件']=$_SERVER["SERVER_SOFTWARE"];
$runMode = null;
$runMode = php_sapi_name();
switch($runMode){
case 'cgi-fcgi':
$score+=50;
break;
}
$safemodeStr = '
(安全模式)';
if($runMode){
if(ini_get('safe_mode')){
$runMode.=' ';
}
$items['php运行方式']=$runMode;
}elseif(ini_get('safe_mode')){
$items['php运行方式']=$safemodeStr;
}
return array('group'=>'服务器基本信息','key'=>'basic','items'=>$items);
}
function test_php(&$score){
$items['php版本']=PHP_VERSION;
if(is_callable('file_put_contents')){
$score += 40;
}
if(is_callable('str_ireplace')){
$score += 20;
}
if(is_callable('ftp_chmod')){
$score += 10;
}
if(is_callable('http_build_query')){
$score += 20;
}
$items['程序最多允许使用内存量 memory_limit']=ini_get("memory_limit");
$items['POST最大字节数 post_max_size']=ini_get("post_max_size");
$items['允许最大上传文件 upload_max_filesize']=ini_get("upload_max_filesize");
$items['程序最长运行时间 max_execution_time']=ini_get("max_execution_time");
$disableFunc = get_cfg_var("disable_functions");
$items['被禁用的函数 disable_functions']=$disableFunc?$disableFunc:'无';
return array('group'=>'php基本信息','items'=>$items);
}
function test_server_req(&$score){
$rst = version_compare(PHP_VERSION,'4.0','>=');
$items['PHP4以上'] = array(
'value'=>PHP_VERSION,
'result'=>$rst,
);
if(!$rst){
$allow_install = false;
}
$rst = !get_cfg_var('zend.ze1_compatibility_mode');
$items['zend.ze1_compatibility_mode 关闭'] = array(
'value'=>$rst?'Off':'On',
'result'=>$rst,
);
if(!$rst){
$allow_install = false;
}
$tmpfname = tempnam("../home/cache", "foo");
$handle = fopen($tmpfname, "w");
$rst = flock($handle,LOCK_EX);
fclose($handle);
unlink($tmpfname);
$items['支持文件锁(flock)'] = array(
'value'=>$rst?'支持':'不支持',
'result'=>$rst,
);
if(!$rst){
$allow_install = false;
}
$rst = function_exists('xml_parse_into_struct');
$items['php可以解析xml文件'] = array(
'value'=>$rst?'支持':'不支持',
'result'=>$rst,
);
if(!$rst){
$allow_install = false;
}
$rst = function_exists('mysql_connect') && function_exists('mysql_get_server_info');
$items['MySQL函数库可用'] = array(
'value'=>$rst?mysql_get_client_info():'未安装',
'result'=>$rst,
);
if(!$rst){
$allow_install = false;
}else{
$rst = false;
if(defined('DB_HOST')){
if(defined('DB_PASSWORD')){
$rs = mysql_connect(DB_HOST,DB_USER,DB_PASSWORD);
}elseif(defined('DB_USER')){
$rs = mysql_connect(DB_HOST,DB_USER);
}else{
$rs = mysql_connect(DB_HOST);
}
$db_ver = mysql_get_server_info($rs);
}elseif($db_ver = mysql_get_server_info()){
define('DB_HOST','');
}else{
$sock = get_cfg_var('mysql.default_socket');
if(PHP_OS!='WINNT' && file_exists($sock) && is_writable($sock)){
define('DB_HOST',$sock);
}else{
$host = ini_get('mysql.default_host');
$port = ini_get('mysql.default_port');
if(!$host)$host = '127.0.0.1';
if(!$port)$port = 3306;
define('DB_HOST',$host.':'.$port);
}
}
if(!$db_ver){
if(substr(DB_HOST,0,1)=='/'){
$fp = @fsockopen("unix://".DB_HOST);
}else{
if($p = strrpos(DB_HOST,':')){
$port = substr(DB_HOST,$p+1);
$host = substr(DB_HOST,0,$p);
}else{
$port = 3306;
$host = DB_HOST;
}
$fp = @fsockopen("tcp://".$host, $port, $errno, $errstr,2);
}
if (!$fp){
$db_ver = '无法连接';
} else {
fwrite($fp, "\n");
$db_ver = fread($fp, 20);
fclose($fp);
if(preg_match('/([2-8]\.[0-9\.]+)/',$db_ver,$match)){
$db_ver = $match[1];
$rst = version_compare($db_ver,'3.2.23','>=');
}else{
$db_ver = '无法识别';
}
}
}else{
$rst = version_compare($db_ver,'3.2.23','>=');
}
$this->db_ver = $db_ver;
$mysql_key = '数据库Mysql 3.2.23以上
'.DB_HOST.'';
if($this->allow_change_db){
$mysql_key.='
';
}
$items[$mysql_key] = array(
'value'=>$db_ver,
'result'=>$rst,
);
if(!$rst){
$allow_install = false;
}
$rst = (defined('OPTIMIZER_VERSION') || (function_exists('extension_loaded') && extension_loaded('Zend Optimizer')));
if($rst){
if(defined('OPTIMIZER_VERSION')){
$rst = version_compare(OPTIMIZER_VERSION,'2.5.7','>=');
$value = OPTIMIZER_VERSION;
}else{
$value = '通过';
}
}else{
$value = '未安装';
}
$items['ZEND Optimizer2.5.7以上'] = array(
'value'=>$value,
'result'=>$rst,
);
if(!$rst){
$allow_install = false;
}
}
if(ini_get('safe_mode')){
$rst = is_callable('ftp_connect');
if(!$rst){
$allow_install = false;
}
$items['当安全模式开启时,ftp函数可用'] = array(
'value'=>$rst?'可用':'不可用',
'result'=>$rst,
);
}
$rst = preg_match('/[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/',gethostbyname('www.example.com'));
$items['DNS配置完成,本机上能通过域名访问网络'] = array(
'value'=>$rst?'成功':'失败 (将影响部分功能)',
'result'=>$rst,
);
return array('group'=>'基本需求','key'=>'require','items'=>$items,'type'=>'require','allow_install'=>$allow_install);
}
function test_php_req(&$score){
$rst = PHP_OS!='WINNT';
$items['unix/linux 主机'] = array(
'value'=>PHP_OS,
'result'=>$rst,
);
if($rst){
$score+=30;
}else{
$this->maxLevel(5);
}
$rst = version_compare(PHP_VERSION,'5.2','>=');
$items['php 版本5.2.0以上'] = array(
'value'=>PHP_VERSION,
'result'=>$rst,
);
if($rst){
$score+=20;
}else{
$this->maxLevel(5);
}
$rst = version_compare($this->db_ver,'4.1.2','>=');
$items['MySQL版本 4.1.2 以上'] = array(
'value'=>$this->db_ver,
'result'=>$rst,
);
if($rst){
$score+=100;
}else{
$this->maxLevel(5);
}
$gdscore = 0;
$gd_rst = array();
if($rst = is_callable('gd_info')){
$gdinfo = gd_info();
if($gdinfo['FreeType Support']){
$gd_rst[] = 'freetype';
$gdscore+=15;
}
if($gdinfo['GIF Read Support']){
$gd_rst[] = 'gif';
$gdscore+=10;
}
if($gdinfo['JPG Support']){
$gd_rst[] = 'jpg';
$gdscore+=10;
}
if($gdinfo['PNG Support']){
$gd_rst[] = 'png';
$gdscore+=10;
}
if($gdinfo['WBMP Support']){
$gd_rst[] = 'bmp';
$gdscore+=5;
}
}
$items['GD支持'] = array(
'value'=>$rst?implode(',',$gd_rst):'不支持',
'result'=>$rst,
);
if($rst){
$score+=$gdscore;
}else{
$this->maxLevel(2);
}
if(isset($GLOBALS['system'])){
$system = &$GLOBALS['system'];
$url = parse_url($system->base_url());
$code = substr(md5(time()),0,6);
$content = $this->doHttpQuery($url['path']."/_test_rewrite=1&s=".$code."&a.html");
$rst = strpos($content,'[*['.md5($code).']*]');
$items['支持rewrite'] = array(
'value'=>$rst?'支持':'不支持',
'result'=>$rst,
'key'=>'rewrite',
);
$content = $this->doHttpQuery($url['path']."/statics/head.jgz");
$rst = preg_match('/Content\-Type:\s*text\/javascript/i',$content);
$items['支持将jgz输出为text/javascript'] = array(
'value'=>$rst?'支持':'不支持',
'result'=>$rst,
'key'=>'mimejgz',
);
}
$rst = is_callable('gzcompress');
$items['Zlib支持'] = array(
'value'=>$rst?'支持':'不支持',
'result'=>$rst,
);
if($rst){
$score+=80;
}else{
$this->maxLevel(2);
}
$rst = is_callable('json_decode');
$items['Json支持'] = array(
'value'=>$rst?'支持':'不支持',
'result'=>$rst,
);
if($rst){
$score+=30;
}else{
$this->maxLevel(5);
}
$rst = is_callable('mb_internal_encoding');
$items['mbstring支持'] = array(
'value'=>$rst?'支持':'不支持',
'result'=>$rst,
);
if($rst){
$score+=25;
}else{
$this->maxLevel(5);
}
$rst = is_callable('fsockopen');
$items['fsockopen支持'] = array(
'value'=>$rst?'支持':'不支持',
'result'=>$rst,
);
if($rst){
$score+=50;
}else{
$this->maxLevel(5);
}
$rst = is_callable('iconv');
$items['iconv支持'] = array(
'value'=>$rst?'支持':'不支持',
'result'=>$rst,
);
if($rst){
$score+=25;
}else{
$this->maxLevel(5);
}
// $rst = get_magic_quotes_gpc();
// $items['magic_quotes_gpc关闭'] = array(
// 'value'=>$rst?'开启':'已关闭',
// 'result'=>!$rst,
// );
// if($rst){
// $score+=20;
// }
$rst = ini_get('register_globals');
$items['register_globals关闭'] = array(
'value'=>$rst?'开启':'已关闭',
'result'=>!$rst,
);
if(!$rst){
$score+=15;
}else{
$this->maxLevel(2);
}
// $rst = ini_get('allow_url_fopen');
// $items['allow_url_fopen关闭'] = array(
// 'value'=>$rst?'开启':'已关闭',
// 'result'=>!$rst,
// );
// if(!$rst){
// $score+=40;
// }
if(version_compare(PHP_VERSION,'5.2.0','>=')){
$rst = ini_get('allow_url_include关闭');
$items['allow_url_include关闭 (php5.2.0以上)'] = array(
'value'=>$rst?'开启':'已关闭',
'result'=>!$rst,
);
if($rst){
$score+=30;
}else{
$this->maxLevel(5);
}
}else{
$rst = ini_get('allow_url_fopen');
$items['allow_url_fopen关闭 (版本小于php5.2.0)'] = array(
'value'=>$rst?'开启':'已关闭',
'result'=>!$rst,
);
if($rst){
$score+=30;
}else{
$this->maxLevel(5);
}
}
$rst=null;
if($cache_apc = is_callable('apc_store')){
$rst[] = 'APC';
}
if($cache_memcached = class_exists('Memcache')){
$rst[] = 'Memcached';
}
$items['高速缓存模块(apc,memcached)'] = array(
'value'=>$rst?implode(',',$rst):'无',
'result'=>($cache_apc || $cache_memcached)
);
if($cache_apc || $cache_memcached){
$score+=150;
}else{
$this->maxLevel(4);
}
return array('group'=>'推荐配置','items'=>$items,'type'=>'require');
}
function maxLevel($level){
$this->maxLevel = min($this->maxLevel,$level-1);
}
function doHttpQuery($uri){
$fp = fsockopen(isset($_SERVER['SERVER_ADDR'])?$_SERVER['SERVER_ADDR']:$_SERVER['HTTP_HOST'], $_SERVER['SERVER_PORT'], $errno, $errstr, 2);
if ($fp) {
$out = "GET ".preg_replace('#/+#','/',$uri)." HTTP/1.1\r\n";
$out .= "Host: {$_SERVER['HTTP_HOST']}\r\n";
$out .= "Connection: Close\r\n\r\n";
fwrite($fp, $out);
while (!feof($fp) && strlen($content)<512) {
$content .= fgets($fp, 128);
}
fclose($fp);
return $content;
}else{
return false;
}
}
}
/*- class-end -*/
if(!defined('IN_INSTALLER')){
if(isset($_GET['cmd'])){
}elseif(isset($_GET['img'])){
$img = $_GET['img'];
if(false){;}
/*- img-begin -*/
elseif($img=='rank_1.gif'){$imgsize='1164';$imgmeta='gif';$imgdata = 'R0lGODlhZAAYAPcAAO3t7evq6uno59/d29jW0tbW1dPT0vXOitHPzNDOytDNyMzKx8vJx/PFdszJxMvIwsnIxcrHw8fGw8bFw8bEwMXCvsLBwMHBv8PAvMLAvfG7XsC+u7+6sO+xRrmzqLazrbaxqrSxrLSwqLOwq7Kwq+2nLO2nLquoo+ueGOudFuudFOqcE6WgmOiaE+aZE+WYEuOXEt+UEtuSEp6YjtmREpyWjNaOEZaQh9CKEc6JEc2IEMuHEMWDEMGBEL5+D7p8D4iBdrh6D7Z5D7N3DrF2DoZ5Y4Z6ZK1zDqlxDqhvDaRtDaJsDX5qSJtnDJVjDHllRJNiDHxiNXVjQ4BiLHViQnpgM45eC4xdC3ZfOHtdKXBdPGxZOINXCl5ZUIFWCnhVGW5WLX9UCmVVOGNVPWtTKHtSClxTQ2NRMXFQGGFRNVlRQ3ZOCXRNCW9OFWhNHmRMIVdNPGFKImhKF2VKHGtHCFBKQFFJO2JHF2FGFV5GG1hGJ2dECFhFIlxFG1FAIV4+B1g7B088HFI8E007HE47GlE5EVY5B006G0Q5Jk83Dk0zBj00JkkxBjswHDktGTotFjUrGy4gCP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEHAJIALAAAAABkABgAAAj/ACUJHEiwoMGDCBMqXMiwoUODFi48nEixosWGdtRc3Mix48IMgQhl8Eiy5MYxXryMMcmy5UIMd3LkuBPBpc2bkrQEKVFCyBacQEs++NJBg4YObRwEXfowAIQRNYowyYKiwYEDDVxMeWJkRggGAJiKJVin0aA8dLw4GZJDxosXMnIMceJlT59DjbqMHTsh0h8uTY74aOsiRQoXcX0cacIF0KMJe8du0LNGyQ8dblVoVgFXxw8lbPxIiLyXAh8rP3DEaGHYcIsYOH5cObOAdOQEcZzskOFiswrEO6AkGmCbtIIqRGzAWMF8BQwbR6IQKG4bzBHVLrK7gJ0EC3XSAsgcaeFhQ4Z5GTZ4IHnzPXIFN0uC9JhPP8iSOQjaj2WBx8kSJFCggYYTSCwBBR4f6CcWEICEEYYcVHDggRRylFGGITcoyBQciggihggEgZBGIYyYoeFSkCBCAkInOLLIiUEZwFABMNZoI0cBAQA7';}
elseif($img=='rank_2.gif'){$imgsize='1342';$imgmeta='gif';$imgdata = 'R0lGODlhZAAYAPcAAO3t7evq6uno59/d29jW0tbW1dPT0vXOitHPzNDOytDNyMzKx8vJx/PFdszJxMvIwsnIxcrHw8fGw8bFw8bEwMXCvsLBwMHBv8PAvMLAvfG7XsC+u7+6sO+xRrmzqLazrbaxqrSxrLSwqLOwq7Kwq+2nLO2nLquoo+ueGOudFuudFOqcE6WgmOiaE+aZE+WYEuOXEt+UEtuSEp6YjtmREpyWjNaOEZaQh9CKEc6JEc2IEMuHEMWDEMGBEL5+D7p8D4iBdrh6D7Z5D7N3DrF2DoZ5Y4Z6ZK1zDqlxDqhvDaRtDaJsDX5qSJtnDJVjDHllRJNiDHxiNXVjQ4BiLHViQnpgM45eC4xdC3ZfOHtdKXBdPGxZOINXCl5ZUIFWCnhVGW5WLX9UCmVVOGNVPWtTKHtSClxTQ2NRMXFQGGFRNVlRQ3ZOCXRNCW9OFWhNHmRMIVdNPGFKImhKF2VKHGtHCFBKQFFJO2JHF2FGFV5GG1hGJ2dECFhFIlxFG1FAIV4+B1g7B088HFI8E007HE47GlE5EVY5B006G0Q5Jk83Dk0zBj00JkkxBjswHDktGTotFjUrGy4gCP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEHAJIALAAAAABkABgAAAj/ACUJHEiwoMGDCBMqXMiwoUODFi48PBhxosWLGAnaUZNR4MaOIEMezBCIUIaMJE2KXBlyjBcvYzK6hMmy5kUMd3LkuBPhZs6dPW0KZaglSIkSQrZcLHo06dCnCB986aBBQ4c2DiZKpWoVK9ShASCMqFGESRYUDQ4caOBiyhMjM0IwAEAw7NiyZ9Oubfs27tyvIOs0GpSHjhcnQ3LIePFCRo4hTrzs6XOoUReBggkbRqyYsWPIkilbBpxxQqQ/XJoc8aHYRYoULhz7ONKEC6BHEwSaRq2atQzXsGXTto2bdMYNetYo+aFjsYrnKhrr+KGEjR8JBJErZ+4cunTq1rEb/89IgY+VHzhitHj9ukUMHD+unFlgsPz59OvZu4cvn/74jgnE4cQOv0GnQmw7QJHIAAgFOGCB0CGoIIP/gaRAFUTYAMMKHK4Agw1HREGAQhdmuGGHH4Y4YoUhgXFEei7E6MJ7SWDBkIswykijjSyCJAAZR/BggwxEymADD0i8sdCPQQ5Z5JFJ9ghSBW4sEUQPWGYZxBJzIKAQlVZmqSWXXkqJEQt4OLEEElCggYYTSCwBBR4fKISmmmy6CaecdJqJERCAhBGGHFRw4IEUcpRRhiE3KASooIQaiqiijPp5ERyKCCKGCASBkEYhjJihEKaacjqQp6CKaulEkCBCAkInOBuyiEKtvnpQrLOu+pABDBWgEK8L+arrsMQyFBAAOw==';}
elseif($img=='rank_3.gif'){$imgsize='1510';$imgmeta='gif';$imgdata = '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';}
elseif($img=='rank_4.gif'){$imgsize='1628';$imgmeta='gif';$imgdata = 'R0lGODlhZAAYAPcAAO3t7evq6uno59/d29jW0tbW1dPT0vXOitHPzNDOytDNyMzKx8vJx/PFdszJxMvIwsnIxcrHw8fGw8bFw8bEwMXCvsLBwMHBv8PAvMLAvfG7XsC+u7+6sO+xRrmzqLazrbaxqrSxrLSwqLOwq7Kwq+2nLO2nLquoo+ueGOudFuudFOqcE6WgmOiaE+aZE+WYEuOXEt+UEtuSEp6YjtmREpyWjNaOEZaQh9CKEc6JEc2IEMuHEMWDEMGBEL5+D7p8D4iBdrh6D7Z5D7N3DrF2DoZ5Y4Z6ZK1zDqlxDqhvDaRtDaJsDX5qSJtnDJVjDHllRJNiDHxiNXVjQ4BiLHViQnpgM45eC4xdC3ZfOHtdKXBdPGxZOINXCl5ZUIFWCnhVGW5WLX9UCmVVOGNVPWtTKHtSClxTQ2NRMXFQGGFRNVlRQ3ZOCXRNCW9OFWhNHmRMIVdNPGFKImhKF2VKHGtHCFBKQFFJO2JHF2FGFV5GG1hGJ2dECFhFIlxFG1FAIV4+B1g7B088HFI8E007HE47GlE5EVY5B006G0Q5Jk83Dk0zBj00JkkxBjswHDktGTotFjUrGy4gCP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEHAJIALAAAAABkABgAAAj/ACUJHEiwoMGDCBMqXMiwoUODFi48PBhxYsGKFgdizIjQjhqOAz2ClCQSZMmRBDMEIpQBpEqWHF+2zCgTJcExXryMAYlTJ8eeOzMCtSkQw50cOe5EyGgUqVKLTZMunRj1qU0tQUqUELIlI1atXC1+3dp14tiwKB986aBBQ4c2DiaqZesW7sO5bd/GdYi37l6HASCMqFGESRYUDQ4caOBiyhMjM0IwAEAw8ODChxMvbvw48uSBlgkbRqyYsWPIkikLDI2Z9ObTnlUfrNNoUB46XpwMySHjxQsZOYY48bKnz6FGXQTSto1bN2/fwIUTN45c0vLbuXf3/h18ePHjya83/9cOvft08AgnRPrDpckRH7xdpEjhAriPI024AHo0QaB69u7BJ4N89NmHn378SfJfe+/FN199OdyX3379LRiggwVGeCCFCW2gxxpK/KBDbyqUqMJvOvygBBt+SECQhyCKSKKJKKrIoosCwRjiiC+YeKIMKa7Y4kA6ytgjjUDaOKRCFPBhxQ84xNDCfPO1EAMOP1xxxgIGNflklFNSaSWWWnJJkJdQSkllCmNmuWVBaIK5ZptlNpRAHE7sMKCP9e0ARSIDIHRnnnua2OefgRo0qJ4u8CmDn4AetGihJR4aqUMKVEGEDTCs4OkKMNhwRBQEKJTppp1+GuqopSJ0Kqefgv8qKqkJvZqqp6vSOhEYR0Tpwq8uXJkEFgzx6iuwwhKrkLExABssDsMuxKyzyVokABlH8GCDDNzKYAMPSLyx0LXZbtvtt+EqRK623XoLrrgJrWsut+jC+1AFbiwRRA/89hvEEnMgoBC++vbrL8ACI0Twvgb38G/ACS3csMMIT8QCHk4sgQQUaKDhBBJLQIHHBwpdnPHGHX8c8sgJmawxxx6DLDLJCLmMcswr0+wQEICEEYYcVHDggRRylFGGITcoxLPPQAtNtNFIJ7T0z0EPXfTRSSM0ddNWQ521Q3AoIogYIhAEQhqFMGKGQmGPXfZAZ6e9NkJtk2022monVPfbAsU5nfdDkCBCAkInOLKIQoEPflDhhyOUOOGGJ/T44pE/ZABDBSh0+UKZI7S5Qp0f9HlCoRNl+umoGxQQADs=';}
elseif($img=='rank_5.gif'){$imgsize='1772';$imgmeta='gif';$imgdata = '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';}
elseif($img=='rank_6.gif'){$imgsize='1770';$imgmeta='gif';$imgdata = 'R0lGODlheAAYAPcAAO3t7erq6unn59/b29bV1djS0tPS0tHMzNDKytDHx8zHx8rHx8nFxc3Dw8rDw8fDw8vBwcbDw8bAwMLAwMG/v8K9vcW9vcC7u8O7u8Cwr7asrLaqqbSrq7Kqqrqop7OqqrSop6uiov2GgKWYl56OjZ2Mi/xxa5aGhvxZUYh1dIhkYodjYfxBN/soHoFHRPsmHF1QT3xCP3hBPnhAPV1CQVlDQnM7OHk2M2Q8Ok9AP38zMPsRBm43NPsQBFg8On4xLvoPA2g2NPkOAvcOAvUOAlE6OWM0MvMOAvEOAoUqJu0NAmYwLekNAucNAoAnI+MNAnIrKN0MAtsMAtkMAtcMAtEMAm4mI80MAskLAsMLAsELAsULAlsmI70LArsKAmUhHWcgHbcKAlsiHmsdGbMKAn0XErEKAq0KAmgbF0UlI6sKAlMgHXYXEj0lJKQJAWIaFmAaFp4JAZwJAWwVEXMTDpQIAZYIAU8bGGYVEVIaF04aF2UTD1EYFYoIAYgHAYYHATwbGYIHAXoHATUaGVYRDToYFnwHAVMQDHAGATsVE2wGAVMMCGIFAVwFAVoFAVEEAE0EAC8HBf///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEHAJIALAAAAAB4ABgAAAj/ACUJHEiwoMGDCBMqXMiwocOHCydQgGhQIkWCFi8KzKhREseOkorUABlyZEeRIFGmNAmyQh4+FTq6hKlxZsyLNmW+vNkRhx8/OHr+DHrRJ1CNRokWHQoSAx4pUvA4uOgUqlSKVaNOhZj1KtanWjvayPLihRYeF8eWPUtRrVm0EN2ybUv2rUYIZVigQMGCTgOIePXy9fsw8N6+fx0aHpxYcd7DhBcGYPChxAoXTnaYECHCBJEkMVSQ4LAAAMHJlS9n3tz5c+jRpQeitoxZM2fPoEWTNi1wtmrbrXPD5t2bMu3Vt13rjk0wB6A7bxD5idNFCpMjR5hI6RLHjyI4egDB/xDoHLp06taxa+fuHbx4SeWjT69+Pfv27t/Dj49/nr76++3pR95z8qFX33r4uTfeQBFEwkgfboSBhXVE9NADEdphEYYbfTSSSAQCNfhghBMyUeGFGW7Y4YeSiAihhBRaiKEUGnLoIYgukhgjijSqeGOIDr5Y4okz1rgiiARdwIUhZ2wxxXVARAlEdlNscYYgazyQ5JJNPnmElFMyUeWVWQ6kJJNOQikllVZiqaVAZ3apZpRskvkmnFym+eWaYrZZpkESiGHHFlEoMYSFFg6hRBRb1LGEAoAKSqihiPagKKOOQkpQoIMWeiiilzb6aEGcTvppoouKqummknpaaaiZJv+EwBdxUGEiETvkiiEVciwyAEKz1nprrjvs2uuvBgVrKxG46soEr74epOywzkKLbLK0Lttssc8eu1ACP3jxBBJClCsEEk+EoUMBCoErLrnmoqsuuwi5O66556a7bkL2wluuvPvyG+698epL70JQhFEos8wuasYNDCW8MMMOQ6yQxEowTETFCCucMcVRPByxxxpzzJAAVoRRxRMst1wFGWAshLLKLbsMs0Izr1zzEy/HnFDOO/N8M84p61xzzw1ZMIYaWVzh9NNZqIHGAQopzfTTUEtNNUJWN431FVFPnVDXX4OtddVLe4112FsrNMIecahBhhxssBEHGWrIsYcGbsPHLTfdduOtN98IvR333HXfnffeCRn+d+KCM96434gHvjjhCqXQyB9/zDFDBh7IMEcggThyQuabd/556KOXfjpCmnPuOeiik256QrGrTnvrt+Oe+uys2/66Qj48QkgQIBC0gRGHQEID8cYjrzzzzidU/PHJD7R8888jdL302lPfvffRZy/Q9tUvNEgaHSAUQiFtKLR++we9Hz9C87sPf0L5178//+zT3/0UYgCGEICABkxIARdyQIQsUCENdGACSULBClrwggYJCAA7';}
elseif($img=='yes.gif'){$imgsize='234';$imgmeta='gif';$imgdata = 'R0lGODlhEAAQAMQAACyDLGGiYUy9T0SZRnbLd2XKbDuOPEa/SWDFZXXQgFjFXUSxR33SiWvMclLDVD+TQH3SfzKHMnrRhE3CUEahSEarSWioaHHOemvOa0WkR0OaRUeySv///wAAAAAAAAAAACH5BAEHABwALAAAAAAQABAAAAVnICeOZFlCTqpCJjcVTCwXUyk0Uq7njTASiIRwSEQQRJuLcslUbkSVhnRKlVZElIJ2y9VSRAOEeEwWD0QPhXrNVj9EBpV8bhBZMpO8fp+xjCILe3sLESUAGgeJihoALQEAkJEBLZQlIQA7';}
elseif($img=='no.gif'){$imgsize='236';$imgmeta='gif';$imgdata = 'R0lGODlhEAAQAMQAAMwhAPiDaf9UMuhGJP9wTv+efNozEtlZQP9lQ/+Na/96WPlePP+kgv9ZN/+WdO1NK+NAHv9rQtIoB/9fPd45F/FTMf+DYf+thOBiSf+McvRNK+c8Gv///wAAAAAAAAAAACH5BAEHABwALAAAAAAQABAAAAVpICeOZFlmSKpmJodYVyxbSLk4TK7nzjIGioJwSFQERBWHcslUVkSPhHRKlT5EA4t2y9UORBCFeEwWQ0QUgnrNVlNEBpV8bhBhBpO8fj/AjCQaDYKDghoSJQAbAouMGwAtBwCSkwctliUhADs=';}
/*- img-end -*/
header('Content-type: '.$imgmeta);
header('Content-Disposition: attachment; filename="'.$img.'"');
echo base64_decode($imgdata);
}elseif(isset($_GET['phpinfo'])&&!file_exists(dirname(__FILE__)."/../config/config.php")){
phpinfo();
}elseif(isset($_GET['download'])){
header('Content-type: text/plain');
header('Content-Disposition: attachment; filename="svinfo.php"');
readfile(__FILE__);
}else{
error_reporting(0);
header('Content-type: text/html;charset=utf-8');
header("Cache-Control: no-cache,no-store , must-revalidate");
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
$disFunc = get_cfg_var("disable_functions");
if(($disFunc || !preg_match('/phpinfo/i',$disFunc)) && !file_exists(dirname(__FILE__)."/../config/config.php")){
$phpinfo = '
查看phpinfo | ';
}else{
$phpinfo = null;
}
$version = '$Rev: 47655 $';
$tester = new mdl_serverinfo();
if(isset($_GET['db_host'])){
if($_GET['db_host']=='config'){
include('../config/config.php');
}else{
$tester->allow_change_db=true;
define('DB_HOST', $_GET['db_host']);
}
}else{
$tester->allow_change_db=true;
}
$result = $tester->run($allow_install);
$txtline = '
================================================================
';
foreach($result['data'] as $group=>$items){
$body.="
{$txtline}{$group}{$txtline} |
";
$i=0;
if($items['type']=='require'){
foreach($items['items'] as $key=>$value){
$rowOpt = $i%2?'':' style="background:#E0EAF2"';
$body.="{$key} | ".$value['value']." | ".($value['result']?' ':' ')." |
";
$i++;
}
}else{
foreach($items['items'] as $key=>$value){
$rowOpt = $i%2?'':' style="background:#E0EAF2"';
$body.="{$key} | {$value} |
";
$i++;
}
}
$body.='';
}
$html =<<
ShopEx 服务器评测
ShopEx©2008
EOF;
echo $html;
}
}
?> PCpዾyǗlgĂ܂}WŔ܂z 萔O~yłz
Yahoo yV NTT-X Store
z[y[W ̃NWbgJ[h COiq
ӂ邳Ɣ[ COsیI COze