BVB Source Codes

MyProber PHP 0.26 a probe Show MyProber.min.php Source code

Return Download MyProber PHP 0.26 a probe: download MyProber.min.php Source code - Download MyProber PHP 0.26 a probe Source code - Type:.php
  1. <?php
  2. /* ----------------------------------------------------
  3.  * Name: MyProber(探测PHP服务器运行环境)
  4.  * Version: 0.26
  5.  * Auther: 郭纪凯
  6.  * QQ: 283489 Weibo: http://weibo.com/guojikai
  7.  * Date: 2011-06-27
  8.  * ---------------------------------------------------- */
  9.  
  10. //定义
  11. $title = 'MyProber';
  12. $version = "0.26"; //版本号
  13.  
  14. error_reporting(7); //抑制所有错误信息
  15. @header("content-Type: text/html; charset=utf-8"); //输出编码
  16. date_default_timezone_set('PRC');
  17. ob_start();
  18.  
  19. //Yes & No
  20. define('YES', '<span class="yes">√</span>');
  21. define('NO', '<span class="no">×</span>');
  22.  
  23. //GET方法
  24. if($_GET['act'] == "phpinfo") { //网页为 phpinfo()
  25.   phpinfo();
  26.   exit;
  27. }if($_GET['act'] == "enable_functions") { //网页为 激活的函数
  28.         echo "<pre>";
  29.         echo "这里显示系统所支持的所有函数(包括自定义函数)\n";
  30.         print_r( get_defined_functions() );
  31.         echo "</pre>";
  32.         exit;
  33. } elseif($_GET['act'] == "disable_functions") { //网页为 禁用的函数
  34.   $dis_func = explode(',', get_cfg_var("disable_functions"));
  35.         echo "<pre>";
  36.         echo "这里显示系统被禁用的函数\n";
  37.         print_r( $dis_func );
  38.         echo "</pre>";
  39.         exit;
  40. } elseif($_GET['act'] == "server_test") { //网页为 服务器性能测试
  41.         if($_GET['i'] == 0) { //整形
  42.     $timeStart = gettimeofday();
  43.     for($i = 0; $i < 3000000; $i++) {
  44.       $t = 1+1;
  45.     }
  46.     $timeEnd = gettimeofday();
  47.     $time = ($timeEnd["usec"]-$timeStart["usec"])/1000000+$timeEnd["sec"]-$timeStart["sec"];
  48.     echo round($time, 3)."秒";
  49.         } elseif($_GET['i'] == 1) { //浮点
  50.     $t = pi();
  51.     $timeStart = gettimeofday();
  52.     for($i = 0; $i < 3000000; $i++) {
  53.       sqrt($t);
  54.     }
  55.     $timeEnd = gettimeofday();
  56.     $time = ($timeEnd["usec"]-$timeStart["usec"])/1000000+$timeEnd["sec"]-$timeStart["sec"];
  57.     echo round($time, 3)."秒";
  58.         } else { //数据I/O
  59.                 $php_self = preg_replace("/(.{0,}?\/+)/", "", $_SERVER['PHP_SELF']);
  60.     $fp = fopen($php_self, 'r');
  61.     $timeStart = gettimeofday();
  62.     for($i = 0; $i < 10000; $i++) {
  63.       fread($fp, 10240);
  64.       rewind($fp);
  65.     }
  66.     $timeEnd = gettimeofday();
  67.     fclose($fp);
  68.     $time = ($timeEnd["usec"]-$timeStart["usec"])/1000000+$timeEnd["sec"]-$timeStart["sec"];
  69.     echo round($time, 3)."秒";
  70.         }
  71.   exit;
  72. } elseif($_GET['act'] == "sendmail") { //网页为 邮件发送测试
  73.   echo (false !== @mail($_GET['email'], 'MAIL SERVER TEST', 'This email is sent by MyProber.')) ? '<span class="f-green">结果:发送成功!</span>' : '<span class="f-red">结果:发送失败!</span>';
  74.   exit;
  75. } elseif($_GET['act'] == "function_check") { //网页为 函数支持检测
  76.         echo '结果:'.str_replace('()', '', $_GET['function_name']).'() '.is_func( str_replace('()', '', $_GET['function_name']) );
  77.   exit;
  78. } elseif($_GET['act'] == "configuration_check") { //网页为 PHP配置参数检测
  79.         echo '结果:'.$_GET['config_name'].' '.get_cfg($_GET['config_name']);
  80.   exit;
  81. } elseif($_POST['act'] == "mysql_connect") {  //网页为 MySQL连接测试
  82.   if(function_exists("mysql_close") == 1) {
  83.     if ( @mysql_connect($_POST['host'].":".$_POST['port'], $_POST['user'], $_POST['password']) ){
  84.                 $mysql_connect_result = '<span class="f-green">结果:连接成功!</span>';
  85.         } else {
  86.                 $mysql_connect_result = '<span class="f-red">结果:连接失败!</span>';
  87.         }
  88.   } else {
  89.                 $mysql_connect_result = '<span class="f-red">结果:服务器不支持MySQL数据库!</span>';
  90.   }
  91. }
  92.  
  93. $time_start = get_microtime_float(); //开始时间
  94. $dis_func = get_cfg_var("disable_functions");
  95. $php_host = preg_replace('~^www\.~i', '', $_SERVER['HTTP_HOST']);
  96. $php_self = $_SERVER['PHP_SELF'] ? $_SERVER['PHP_SELF'] : $_SERVER['SCRIPT_NAME'];
  97. $php_url = 'http://'.$php_host.$php_self;
  98.  
  99. //函数:打印
  100. function p($var) {
  101.   var_dump($var);
  102.   exit;
  103. }
  104.  
  105. //函数:计时
  106. function get_microtime_float() {
  107.   $mtime = microtime();
  108.   $mtime = explode(' ', $mtime);
  109.   return $mtime[1] + $mtime[0];
  110. }
  111.  
  112. //函数:内存使用量
  113. function memory_usage() {
  114.         $memory  = ( ! function_exists('memory_get_usage')) ? '0' : round(memory_get_usage()/1024/1024, 2).'MB';
  115.         return $memory;
  116. }
  117.  
  118. //函数:单位转换
  119. function format_size($size) {
  120.   $danwei=array(' B ',' K ',' M ',' G ',' T ');
  121.   $allsize=array();
  122.   $i=0;
  123.   for($i = 0; $i <4; $i++) {
  124.     if(floor($size/pow(1024,$i))==0){break;}
  125.   }
  126.   for($l = $i-1; $l >=0; $l--) {
  127.     $allsize1[$l]=floor($size/pow(1024,$l));
  128.     $allsize[$l]=$allsize1[$l]-$allsize1[$l+1]*1024;
  129.   }
  130.   $len = count($allsize);
  131.   for($j = $len-1; $j >=0; $j--) {
  132.     $strlen = 4-strlen($allsize[$j]);
  133.     if($strlen==1)
  134.       $allsize[$j] = "<font color='#FFFFFF'>0</font>".$allsize[$j];
  135.     elseif($strlen==2)
  136.       $allsize[$j] = "<font color='#FFFFFF'>00</font>".$allsize[$j];
  137.     elseif($strlen==3)
  138.       $allsize[$j] = "<font color='#FFFFFF'>000</font>".$allsize[$j];
  139.  
  140.     $fsize=$fsize.$allsize[$j].$danwei[$j];
  141.   }  
  142.   return $fsize;
  143. }
  144.  
  145. //函数:检测函数支持
  146. function is_func($funName = '') {
  147.     if (!$funName || trim($funName) == '' || preg_match('~[^a-z0-9\_]+~i', $funName, $tmp)) return '错误';
  148.   return (false !== function_exists($funName)) ? YES : NO;
  149. }
  150. //函数:检测PHP设置参数
  151. function get_cfg($varName) {
  152.   $result = get_cfg_var($varName);
  153.   if($result == 0) return NO;
  154.   elseif($result == 1) return YES;
  155.   else return $result;
  156. }
  157.  
  158. //linux系统探测
  159. function sys_linux() {
  160.     // CPU
  161.     if (false === ($str = @file("/proc/cpuinfo"))) return false;
  162.     $str = implode("", $str);
  163.     @preg_match_all("/model\s+name\s{0,}\:+\s{0,}([\w\s\)\(\@.-]+)([\r\n]+)/s", $str, $model);
  164.     @preg_match_all("/cpu\s+MHz\s{0,}\:+\s{0,}([\d\.]+)[\r\n]+/", $str, $mhz);
  165.     @preg_match_all("/cache\s+size\s{0,}\:+\s{0,}([\d\.]+\s{0,}[A-Z]+[\r\n]+)/", $str, $cache);
  166.     @preg_match_all("/bogomips\s{0,}\:+\s{0,}([\d\.]+)[\r\n]+/", $str, $bogomips);
  167.     if (false !== is_array($model[1]))  {
  168.     $res['cpu']['num'] = sizeof($model[1]);
  169.     $res['cpu']['num_text'] = str_replace(array(1,2,4,8,16), array('单','双','四','八','十六'), $res['cpu']['num']).'核';
  170.                 /*
  171.         for($i = 0; $i < $res['cpu']['num']; $i++) {
  172.             $res['cpu']['model'][] = $model[1][$i].'&nbsp;('.$mhz[1][$i].')';
  173.             $res['cpu']['mhz'][] = $mhz[1][$i];
  174.             $res['cpu']['cache'][] = $cache[1][$i];
  175.             $res['cpu']['bogomips'][] = $bogomips[1][$i];
  176.         }*/
  177.     $x1 = ($res['cpu']['num']==1) ? '' : ' ×'.$res['cpu']['num'];
  178.                 $mhz[1][0] = ' | 频率:'.$mhz[1][0];
  179.                 $cache[1][0] = ' | 二级缓存:'.$cache[1][0];
  180.                 $bogomips[1][0] = ' | Bogomips:'.$bogomips[1][0];
  181.                 $res['cpu']['model'][] = $model[1][0].$mhz[1][0].$cache[1][0].$bogomips[1][0].$x1;
  182.         if (false !== is_array($res['cpu']['model'])) $res['cpu']['model'] = implode("<br />", $res['cpu']['model']);
  183.         if (false !== is_array($res['cpu']['mhz'])) $res['cpu']['mhz'] = implode("<br />", $res['cpu']['mhz']);
  184.         if (false !== is_array($res['cpu']['cache'])) $res['cpu']['cache'] = implode("<br />", $res['cpu']['cache']);
  185.         if (false !== is_array($res['cpu']['bogomips'])) $res['cpu']['bogomips'] = implode("<br />", $res['cpu']['bogomips']);
  186.         }
  187.     // NETWORK
  188.     // UPTIME
  189.     if (false === ($str = @file("/proc/uptime"))) return false;
  190.     $str = explode(' ', implode("", $str));
  191.     $str = trim($str[0]);
  192.     $min = $str / 60;
  193.     $hours = $min / 60;
  194.     $days = floor($hours / 24);
  195.     $hours = floor($hours - ($days * 24));
  196.     $min = floor($min - ($days * 60 * 24) - ($hours * 60));
  197.     if ($days !== 0) $res['uptime'] = $days."天";
  198.     if ($hours !== 0) $res['uptime'] .= $hours."小时";
  199.     $res['uptime'] .= $min."分钟";
  200.     // MEMORY
  201.     if(false === ($str = @file("/proc/meminfo"))) return false;
  202.     $str = implode("", $str);
  203.     preg_match_all("/MemTotal\s{0,}\:+\s{0,}([\d\.]+).+?MemFree\s{0,}\:+\s{0,}([\d\.]+).+?Cached\s{0,}\:+\s{0,}([\d\.]+).+?SwapTotal\s{0,}\:+\s{0,}([\d\.]+).+?SwapFree\s{0,}\:+\s{0,}([\d\.]+)/s", $str, $buf);
  204.           preg_match_all("/Buffers\s{0,}\:+\s{0,}([\d\.]+)/s", $str, $buffers);
  205.     $res['mem_total'] = round($buf[1][0]/1024, 2);
  206.     $res['mem_free'] = round($buf[2][0]/1024, 2);
  207.     $res['mem_buffers'] = round($buffers[1][0]/1024, 2);
  208.           $res['mem_cached'] = round($buf[3][0]/1024, 2);
  209.     $res['mem_used'] = $res['mem_total']-$res['mem_free'];
  210.     $res['mem_percent'] = (floatval($res['mem_total'])!=0)?round($res['mem_used']/$res['mem_total']*100,2):0;
  211.     $res['mem_real_used'] = $res['mem_total'] - $res['mem_free'] - $res['mem_cached'] - $res['mem_buffers']; //真实内存使用
  212.           $res['mem_real_free'] = $res['mem_total'] - $res['mem_real_used']; //真实空闲
  213.     $res['mem_real_percent'] = (floatval($res['mem_total'])!=0)?round($res['mem_real_used']/$res['mem_total']*100,2):0; //真实内存使用率
  214.         $res['mem_cached_percent'] = (floatval($res['mem_cached'])!=0)?round($res['mem_cached']/$res['mem_total']*100,2):0; //Cached内存使用率
  215.     $res['swap_total'] = round($buf[4][0]/1024, 2);
  216.     $res['swap_free'] = round($buf[5][0]/1024, 2);
  217.     $res['swap_used'] = round($res['swap_total']-$res['swap_free'], 2);
  218.     $res['swap_percent'] = (floatval($res['swap_total'])!=0)?round($res['swap_used']/$res['swap_total']*100,2):0;
  219.     // LOAD AVG
  220.     if (false === ($str = @file("/proc/loadavg"))) return false;
  221.     $str = explode(' ', implode("", $str));
  222.     $str = array_chunk($str, 4);
  223.     $res['load_avg'] = implode(' ', $str[0]);
  224.     return $res;
  225. }
  226.  
  227. //FreeBSD系统探测
  228. function sys_freebsd() {
  229.         //CPU
  230.         if (false === ($res['cpu']['num'] = get_key("hw.ncpu"))) return false;
  231.   $res['cpu']['num_text'] = str_replace(array(1,2,4,8,16), array('单','双','四','八','十六'), $res['cpu']['num']).'核';
  232.         $res['cpu']['model'] = get_key("hw.model");
  233.         //LOAD AVG
  234.         if (false === ($res['load_avg'] = get_key("vm.loadavg"))) return false;
  235.         //UPTIME
  236.         if (false === ($buf = get_key("kern.boottime"))) return false;
  237.   $buf = explode(' ', $buf);
  238.   $sys_ticks = time() - intval($buf[3]);
  239.   $min = $sys_ticks / 60;
  240.   $hours = $min / 60;
  241.   $days = floor($hours / 24);
  242.   $hours = floor($hours - ($days * 24));
  243.   $min = floor($min - ($days * 60 * 24) - ($hours * 60));
  244.   if ($days !== 0) $res['uptime'] = $days."天";
  245.   if ($hours !== 0) $res['uptime'] .= $hours."小时";
  246.   $res['uptime'] .= $min."分钟";
  247.  //MEMORY
  248.   if (false === ($buf = get_key("hw.physmem"))) return false;
  249.   $res['mem_total'] = round($buf/1024/1024, 2);
  250.   $str = get_key("vm.vmtotal");
  251.   preg_match_all("/\nVirtual Memory[\:\s]*\(Total[\:\s]*([\d]+)K[\,\s]*Active[\:\s]*([\d]+)K\)\n/i", $str, $buff, PREG_SET_ORDER);
  252.   preg_match_all("/\nReal Memory[\:\s]*\(Total[\:\s]*([\d]+)K[\,\s]*Active[\:\s]*([\d]+)K\)\n/i", $str, $buf, PREG_SET_ORDER);
  253.   $res['mem_real_used'] = round($buf[0][2]/1024, 2);
  254.   $res['mem_cached'] = round($buff[0][2]/1024, 2);
  255.   $res['mem_used'] = round($buf[0][1]/1024, 2) + $res['mem_cached'];
  256.   $res['mem_free'] = $res['mem_total'] - $res['mem_used'];
  257.   $res['mem_percent'] = (floatval($res['mem_total'])!=0)?round($res['mem_used']/$res['mem_total']*100,2):0;
  258.   $res['mem_real_percent'] = (floatval($res['mem_total'])!=0)?round($res['mem_real_used']/$res['mem_total']*100,2):0;
  259.   return $res;
  260. }
  261.  
  262. //取得参数值 FreeBSD
  263. function get_key($keyName) {
  264.   return do_command('sysctl', "-n $keyName");
  265. }
  266.  
  267. //确定执行文件位置 FreeBSD
  268. function find_command($commandName) {
  269.   $path = array('/bin', '/sbin', '/usr/bin', '/usr/sbin', '/usr/local/bin', '/usr/local/sbin');
  270.         foreach($path as $p) {
  271.                 if (@is_executable("$p/$commandName")) return "$p/$commandName";
  272.         }
  273.         return false;
  274. }
  275.  
  276. //执行系统命令 FreeBSD
  277. function do_command($commandName, $args) {
  278.         $buffer = "";
  279.         if (false === ($command = find_command($commandName))) return false;
  280.         if ($fp = @popen("$command $args", 'r')) {
  281.                 while (!@feof($fp)) {
  282.                         $buffer .= @fgets($fp, 4096);
  283.                 }
  284.                 return trim($buffer);
  285.         }
  286.         return false;
  287. }
  288.  
  289. //windows系统探测
  290. function sys_windows() {
  291.         if(PHP_VERSION >= 5) {
  292.                 $obj_locator = new COM("WbemScripting.SWbemLocator");
  293.                 $wmi =& $obj_locator->ConnectServer();
  294.         } else {
  295.                 return false;
  296.         }
  297.         //CPU
  298.         $cpuinfo = GetWMI(&$wmi, "Win32_Processor", array("Name", "L2CacheSize", "NumberOfCores"));
  299.         $res['cpu']['num'] = $cpuinfo[0]['NumberOfCores'];
  300.         if (null == $res['cpu']['num']) {
  301.                 $res['cpu']['num'] = 1;
  302.         }
  303.   $res['cpu']['num_text'] = str_replace(array(1,2,4,8,16), array('单','双','四','八','十六'), $res['cpu']['num']).'核';
  304.   /*
  305.         for ($i=0;$i<$res['cpu']['num'];$i++) {
  306.  
  307.                 $res['cpu']['model'] .= $cpuinfo[0]['Name']."<br />";
  308.  
  309.                 $res['cpu']['cache'] .= $cpuinfo[0]['L2CacheSize']."<br />";
  310.  
  311.         }*/
  312.         $cpuinfo[0]['L2CacheSize'] = ' ('.$cpuinfo[0]['L2CacheSize'].')';
  313.   $x1 = ($res['cpu']['num']==1) ? '' : ' ×'.$res['cpu']['num'];
  314.         $res['cpu']['model'] = $cpuinfo[0]['Name'].$cpuinfo[0]['L2CacheSize'].$x1;
  315.         //SYSINFO
  316.         $sysinfo = GetWMI(&$wmi, "Win32_OperatingSystem", array('LastBootUpTime','TotalVisibleMemorySize','FreePhysicalMemory','Caption','CSDVersion','SerialNumber','InstallDate'));
  317.         $sysinfo[0]['Caption']=iconv('GBK', 'UTF-8',$sysinfo[0]['Caption']);
  318.         $sysinfo[0]['CSDVersion']=iconv('GBK', 'UTF-8',$sysinfo[0]['CSDVersion']);
  319.         $res['win_n'] = $sysinfo[0]['Caption'].' '.$sysinfo[0]['CSDVersion']." 序列号:{$sysinfo[0]['SerialNumber']} 于".date('Y年m月d日H:i:s',strtotime(substr($sysinfo[0]['InstallDate'],0,14)))."安装";
  320.         //UPTIME
  321.         $res['uptime'] = $sysinfo[0]['LastBootUpTime'];
  322.         $sys_ticks = time() - strtotime(substr($res['uptime'], 0, 14));
  323.         $min = $sys_ticks / 60;
  324.         $hours = $min / 60;
  325.         $days = floor($hours / 24);
  326.         $hours = floor($hours - ($days * 24));
  327.         $min = floor($min - ($days * 60 * 24) - ($hours * 60));
  328.         if ($days !== 0) $res['uptime'] = $days."天";
  329.         if ($hours !== 0) $res['uptime'] .= $hours."小时";
  330.         $res['uptime'] .= $min."分钟";
  331.         //MEMORY
  332.         $res['mem_total'] = round($sysinfo[0]['TotalVisibleMemorySize']/1024,2);
  333.         $res['mem_free'] = round($sysinfo[0]['FreePhysicalMemory']/1024,2);
  334.         $res['mem_used'] = $res['mem_total']-$res['mem_free'];  //上面两行已经除以1024,这行不用再除了
  335.         $res['mem_percent'] = round($res['mem_used'] / $res['mem_total']*100,2);
  336.         //LoadPercentage
  337.         $loadinfo = GetWMI(&$wmi, "Win32_Processor", array("LoadPercentage"));
  338.         $res['load_avg'] = $loadinfo[0]['LoadPercentage'];
  339.         return $res;
  340. }
  341. function GetWMI(&$wmi, $strClass, $strValue = array()) {
  342.         $arrData = array();
  343.         $objWEBM = $wmi->Get($strClass);
  344.         $arrProp = $objWEBM->Properties_;
  345.         $arrWEBMCol = $objWEBM->Instances_();
  346.         foreach($arrWEBMCol as $objItem) {
  347.                 @reset($arrProp);
  348.                 $arrInstance = array();
  349.                 foreach($arrProp as $propItem) {
  350.                         eval("\$value = \$objItem->" . $propItem->Name . ";");
  351.                         if (empty($strValue)) {
  352.                                 $arrInstance[$propItem->Name] = trim($value);
  353.                         } else {
  354.                                 if (in_array($propItem->Name, $strValue)) {
  355.                                         $arrInstance[$propItem->Name] = trim($value);
  356.                                 }
  357.                         }
  358.                 }
  359.                 $arrData[] = $arrInstance;
  360.         }
  361.         return $arrData;
  362. }
  363.  
  364. //根据操作系统取得CPU相关信息
  365. switch(PHP_OS) {
  366.   case "Linux":
  367.     $sysReShow = (($sys_info = sys_linux()) !== false) ? "show" : "none";
  368.     break;
  369.   case "FreeBSD":
  370.     $sysReShow = (($sys_info = sys_freebsd()) !== false) ? "show" : "none";
  371.     break;
  372.   case "WINNT":
  373.     $sysReShow = (($sys_info = sys_windows()) !== false) ? "show" : "none";
  374.     break;
  375.   default:
  376.     break;
  377. }
  378. $sys_info['disk_total'] = round(@disk_total_space('.') / (1024*1024*1024), 2);
  379.  
  380. //整理实时数据
  381. $realtime = array(
  382.   'time' => date('Y年n月j日 H:i:s'),
  383.   'uptime' => $sys_info['uptime'],
  384.   'disk_free' => round(@disk_free_space('.') / (1024*1024*1024), 2).' G',
  385.   'mem_used' => round($sys_info['mem_used']/1024, 2).' G',
  386.   'mem_free' => round($sys_info['mem_free']/1024, 2).' G',
  387.   'mem_cached' => round($sys_info['mem_cached']/1024, 2).' G',
  388.   'mem_buffers' => round($sys_info['mem_buffers']/1024, 2).' G',
  389.   'mem_real_used' => round($sys_info['mem_real_used']/1024, 2).' G', //真实内存使用
  390.   'mem_real_free' => round($sys_info['mem_real_free']/1024, 2).' G', //真实内存空闲
  391.   'mem_real_percent' => (int)$sys_info['mem_real_percent'].'%', //真实内存使用比率
  392.   'mem_percent' => (int)$sys_info['mem_percent'].'%', //内存总使用率
  393.   'mem_cached_percent' => (int)$sys_info['mem_cached_percent'].'%', //cache内存使用率
  394.   'swap_percent' => (int)$sys_info['swap_percent'].'%',
  395.   'load_avg' => $sys_info['load_avg'] //系统平均负载
  396. );
  397.  
  398. //网卡流量
  399. $network = @file("/proc/net/dev");
  400. for($i=2; $i<count($network); $i++) {
  401.         preg_match_all( "/([^\s]+):[\s]{0,}(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)/", $network[$i], $info);
  402.   $realtime['network']['input'][$i] = format_size($info[2][0]);
  403.   $realtime['network']['output'][$i] = format_size($info[10][0]);
  404. }
  405.  
  406. //Ajax取服务器实时数据
  407. if($_GET['act'] == 'realtime') {
  408.   echo json_encode($realtime);
  409.   exit;
  410. }
  411.  
  412. ?>
  413. <!DOCTYPE html>
  414. <html>
  415. <head>
  416. <meta charset="utf-8">
  417. <title><?php echo $title; ?> v<?php echo $version; ?> PHP探针</title>
  418. <style type="text/css">
  419. html{color:#404040;font-size:12px;background:#efefef;overflow:-moz-scrollbars-vertical;overflow-y:scroll}body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,button,textarea,p,blockquote,th,td{margin:0;padding:0;font-family:Tahoma,"Microsoft Yahei",Arial}header,nav,article,section,aside,footer{display:block}table{border-collapse:collapse;border-spacing:0}fieldset,img{border:0}address,caption,cite,code,dfn,em,strong,th,var,optgroup{font-style:inherit;font-weight:inherit}strong{font-weight:bold}del,ins{text-decoration:none}li{list-style:none}caption,th{text-align:left}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal}q:before,q:after{content:''}abbr,acronym{border:0;font-variant:normal}sup{vertical-align:baseline}sub{vertical-align:baseline}legend{color:#000}input,button,textarea,select,optgroup,option{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit}input,button,textarea,select{*font-size:100%}a{font-size:12px;color:#067bb2;text-decoration:none}a:hover{color:#f60;text-decoration:underline}a:active{color:#f00;text-decoration:none}input.btn{height:25px;display:inline-block;outline:0;line-height:23px;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;font-size:14px;padding:0px 20px;-moz-box-shadow:2px 2px 3px #999;-webkit-box-shadow:2px 2px 3px #999;box-shadow:2px 2px 3px #999;color:#555;background:-moz-linear-gradient(19% 75% 90deg,#ddd,#eee,#fff 100%);background:-webkit-gradient(linear,0% 0%,0% 100%,from(#fff),to(#ddd),color-stop(.3,#eee));border:1px solid #ccc}input.btn:hover{background:-moz-linear-gradient(19% 75% 90deg,#F0DEB8,#FDF0D1,#fff 100%);background:-webkit-gradient(linear,0% 0%,0% 100%,from(#FFF),to(#F0DEB8),color-stop(.3,#FDF0D1));color:#836d4d;border:1px solid #d4c198}input.btn:active{background:-moz-linear-gradient(19% 75% 90deg,#fff,#FDF0D1,#F0DEB8 100%);background:-webkit-gradient(linear,0% 0%,0% 100%,from(#F0DEB8),to(#fff),color-stop(.3,#FDF0D1));color:#836d4d;border:1px solid #d4c198;-moz-box-shadow:2px 2px 3px #999;-webkit-box-shadow:0 0 0 #999;box-shadow:1px 1px 2px #999}input.active{background:-moz-linear-gradient(19% 75% 90deg,#F0DEB8,#FDF0D1,#fff 100%);background:-webkit-gradient(linear,0% 0%,0% 100%,from(#FFF),to(#F0DEB8),color-stop(.3,#FDF0D1));color:#836d4d;border:1px solid #d4c198}input.q{width:300px;height:25px;line-height:25px;padding:0 4px;font-size:13px;color:#a8a8a8;background:#f7f7f7;border:1px solid #ccc;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:2px 2px 3px #ddd inset;-webkit-box-shadow:2px 2px 3px #ddd inset;box-shadow:2px 2px 3px #ddd inset}textarea.q{width:400px;height:200px;line-height:20px;padding:2px 5px;font-size:12px;overflow:auto;color:#444;border:solid 1px #cecece;background:url(image/input.png) no-repeat 0 0}textarea.q2{background:url(image/input.png) no-repeat 0 -500px}.bar{border:solid 1px #999;background:#fff;height:5px;font-size:2px;width:90%;margin:2px 0 5px 0;padding:1px}.bar-dotted{border:1px dotted #999;background:#fff;height:5px;font-size:2px;width:90%;margin:2px 0 5px 0;padding:1px}.barli-red{background:#f60;height:5px;margin:0px;padding:0}.barli-blue{background:#09F;height:5px;margin:0px;padding:0}.barli-green{background:#36b52a;height:5px;margin:0px;padding:0}.barli-grey{background:#999;height:5px;margin:0px;padding:0}.f-grey{color:#999}.f-pink{color:#f800f3}.f-orange{color:#f60}.f-blue{color:#00f}.f-red{color:#c00}.f-green{color:#0a0}.f-12{font-size:12px}.f-14{font-size:14px}.f-b{font-weight:bold}.t-c{text-align:center}.yes,.no{font-size:14px}.yes{color:green}.no{color:red}.imgbor1,.imgbor{border:solid 1px #ddd;padding:1px;background:#fff}.clear{clear:both;width:0;height:0;line-height:0;margin:0;padding:0}.hide{display:none}.container{width:900px;margin:0 auto}.header{}.header .top1{height:6px;background:#ddd;border-bottom:solid 1px #aaa;border-left:solid 1px #aaa;border-right:solid 1px #aaa}.header .logo{height:90px;padding:0 20px;color:#404040;border-bottom:solid 1px #bbb}.header .logo a{font:Italic bold 35px/85px "Verdana";color:#71C300;text-decoration:none;margin-right:5px;text-shadow:1px 2px 3px #333}.header .logo span{float:right}.header .logo span a{font:Normal 12px/90px "Simsun";text-shadow:0 0 0;color:#067bb2;margin:0}.header .logo a b{color:#FFB300}.main {border-left:solid 1px #ccc;border-right:solid 1px #ccc;-moz-box-shadow:2px 2px 10px #999;-webkit-box-shadow:2px 2px 10px #999;box-shadow:2px 2px 10px #999}.main .nav-box{height:34px}.main .nav{height:32px;border-top:solid 1px #eee;border-bottom:solid 1px #aaa;background:#ccc;border-left:solid 1px #aaa;border-right:solid 1px #aaa}.main .nav li{width:120px;height:32px;float:left;border-left:solid 1px #eee;border-right:solid 1px #999;background:#ccc}.main .nav li a{height:32px;line-height:32px;display:block;text-align:center;color:#404040;font-size:14px}.main .nav li a:hover{background:#bbb;text-decoration:none}.main .nav li.active{background:#aaa}.main .nav li.active a{color:#fff;font-weight:bold}.main .table{border-bottom:solid 1px #ccc}.main .table .title{height:30px;line-height:30px;font-size:14px;padding:0 10px;background:#ddd;border-bottom:solid 1px #ccc}.main .table .title span{font:14px/30px bold "Webdings";color:#f60;margin-right:8px}.main .table .title a.more{float:right;line-height:30px;font:12px/30px bold Webdings;font-family:"Webdings";text-decoration:none;color:#b8b8b8}.main .table .content{width:100%;background:#fff;border-collapse:collapse}.main .table .content td{border:solid 1px #dedede;line-height:20px;padding:3px 8px}.main .table .content td.realtime-btn{padding:10px 8px}.main .table .content td.servertest-btn{padding-bottom:7px}.main .table .content td.form{padding:10px 8px}.footer{margin:5px 0 10px;height:40px;line-height:40px;over-flow:hidden}.footer .copy{float:left;height:40px}.footer .link{float:right;height:40px}
  420. </style>
  421. <script>
  422. (function(){var _jQuery=window.jQuery,_$=window.$;var jQuery=window.jQuery=window.$=function(selector,context){return new jQuery.fn.init(selector,context);};var quickExpr=/^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)$/,isSimple=/^.[^:#\[\.]*$/,undefined;jQuery.fn=jQuery.prototype={init:function(selector,context){selector=selector||document;if(selector.nodeType){this[0]=selector;this.length=1;return this;}if(typeof selector=="string"){var match=quickExpr.exec(selector);if(match&&(match[1]||!context)){if(match[1])selector=jQuery.clean([match[1]],context);else{var elem=document.getElementById(match[3]);if(elem){if(elem.id!=match[3])return jQuery().find(selector);return jQuery(elem);}selector=[];}}else
  423. return jQuery(context).find(selector);}else if(jQuery.isFunction(selector))return jQuery(document)[jQuery.fn.ready?"ready":"load"](selector);return this.setArray(jQuery.makeArray(selector));},jquery:"1.2.6",size:function(){return this.length;},length:0,get:function(num){return num==undefined?jQuery.makeArray(this):this[num];},pushStack:function(elems){var ret=jQuery(elems);ret.prevObject=this;return ret;},setArray:function(elems){this.length=0;Array.prototype.push.apply(this,elems);return this;},each:function(callback,args){return jQuery.each(this,callback,args);},index:function(elem){var ret=-1;return jQuery.inArray(elem&&elem.jquery?elem[0]:elem,this);},attr:function(name,value,type){var options=name;if(name.constructor==String)if(value===undefined)return this[0]&&jQuery[type||"attr"](this[0],name);else{options={};options[name]=value;}return this.each(function(i){for(name in options)jQuery.attr(type?this.style:this,name,jQuery.prop(this,options[name],type,i,name));});},css:function(key,value){if((key=='width'||key=='height')&&parseFloat(value)<0)value=undefined;return this.attr(key,value,"curCSS");},text:function(text){if(typeof text!="object"&&text!=null)return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(text));var ret="";jQuery.each(text||this,function(){jQuery.each(this.childNodes,function(){if(this.nodeType!=8)ret+=this.nodeType!=1?this.nodeValue:jQuery.fn.text([this]);});});return ret;},wrapAll:function(html){if(this[0])jQuery(html,this[0].ownerDocument).clone().insertBefore(this[0]).map(function(){var elem=this;while(elem.firstChild)elem=elem.firstChild;return elem;}).append(this);return this;},wrapInner:function(html){return this.each(function(){jQuery(this).contents().wrapAll(html);});},wrap:function(html){return this.each(function(){jQuery(this).wrapAll(html);});},append:function(){return this.domManip(arguments,true,false,function(elem){if(this.nodeType==1)this.appendChild(elem);});},prepend:function(){return this.domManip(arguments,true,true,function(elem){if(this.nodeType==1)this.insertBefore(elem,this.firstChild);});},before:function(){return this.domManip(arguments,false,false,function(elem){this.parentNode.insertBefore(elem,this);});},after:function(){return this.domManip(arguments,false,true,function(elem){this.parentNode.insertBefore(elem,this.nextSibling);});},end:function(){return this.prevObject||jQuery([]);},find:function(selector){var elems=jQuery.map(this,function(elem){return jQuery.find(selector,elem);});return this.pushStack(/[^+>] [^+>]/.test(selector)||selector.indexOf("..")>-1?jQuery.unique(elems):elems);},clone:function(events){var ret=this.map(function(){if(jQuery.browser.msie&&!jQuery.isXMLDoc(this)){var clone=this.cloneNode(true),container=document.createElement("div");container.appendChild(clone);return jQuery.clean([container.innerHTML])[0];}else
  424. return this.cloneNode(true);});var clone=ret.find("*").andSelf().each(function(){if(this[expando]!=undefined)this[expando]=null;});if(events===true)this.find("*").andSelf().each(function(i){if(this.nodeType==3)return;var events=jQuery.data(this,"events");for(var type in events)for(var handler in events[type])jQuery.event.add(clone[i],type,events[type][handler],events[type][handler].data);});return ret;},filter:function(selector){return this.pushStack(jQuery.isFunction(selector)&&jQuery.grep(this,function(elem,i){return selector.call(elem,i);})||jQuery.multiFilter(selector,this));},not:function(selector){if(selector.constructor==String)if(isSimple.test(selector))return this.pushStack(jQuery.multiFilter(selector,this,true));else
  425. selector=jQuery.multiFilter(selector,this);var isArrayLike=selector.length&&selector[selector.length-1]!==undefined&&!selector.nodeType;return this.filter(function(){return isArrayLike?jQuery.inArray(this,selector)<0:this!=selector;});},add:function(selector){return this.pushStack(jQuery.unique(jQuery.merge(this.get(),typeof selector=='string'?jQuery(selector):jQuery.makeArray(selector))));},is:function(selector){return!!selector&&jQuery.multiFilter(selector,this).length>0;},hasClass:function(selector){return this.is("."+selector);},val:function(value){if(value==undefined){if(this.length){var elem=this[0];if(jQuery.nodeName(elem,"select")){var index=elem.selectedIndex,values=[],options=elem.options,one=elem.type=="select-one";if(index<0)return null;for(var i=one?index:0,max=one?index+1:options.length;i<max;i++){var option=options[i];if(option.selected){value=jQuery.browser.msie&&!option.attributes.value.specified?option.text:option.value;if(one)return value;values.push(value);}}return values;}else
  426. return(this[0].value||"").replace(/\r/g,"");}return undefined;}if(value.constructor==Number)value+='';return this.each(function(){if(this.nodeType!=1)return;if(value.constructor==Array&&/radio|checkbox/.test(this.type))this.checked=(jQuery.inArray(this.value,value)>=0||jQuery.inArray(this.name,value)>=0);else if(jQuery.nodeName(this,"select")){var values=jQuery.makeArray(value);jQuery("option",this).each(function(){this.selected=(jQuery.inArray(this.value,values)>=0||jQuery.inArray(this.text,values)>=0);});if(!values.length)this.selectedIndex=-1;}else
  427. this.value=value;});},html:function(value){return value==undefined?(this[0]?this[0].innerHTML:null):this.empty().append(value);},replaceWith:function(value){return this.after(value).remove();},eq:function(i){return this.slice(i,i+1);},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments));},map:function(callback){return this.pushStack(jQuery.map(this,function(elem,i){return callback.call(elem,i,elem);}));},andSelf:function(){return this.add(this.prevObject);},data:function(key,value){var parts=key.split(".");parts[1]=parts[1]?"."+parts[1]:"";if(value===undefined){var data=this.triggerHandler("getData"+parts[1]+"!",[parts[0]]);if(data===undefined&&this.length)data=jQuery.data(this[0],key);return data===undefined&&parts[1]?this.data(parts[0]):data;}else
  428. return this.trigger("setData"+parts[1]+"!",[parts[0],value]).each(function(){jQuery.data(this,key,value);});},removeData:function(key){return this.each(function(){jQuery.removeData(this,key);});},domManip:function(args,table,reverse,callback){var clone=this.length>1,elems;return this.each(function(){if(!elems){elems=jQuery.clean(args,this.ownerDocument);if(reverse)elems.reverse();}var obj=this;if(table&&jQuery.nodeName(this,"table")&&jQuery.nodeName(elems[0],"tr"))obj=this.getElementsByTagName("tbody")[0]||this.appendChild(this.ownerDocument.createElement("tbody"));var scripts=jQuery([]);jQuery.each(elems,function(){var elem=clone?jQuery(this).clone(true)[0]:this;if(jQuery.nodeName(elem,"script"))scripts=scripts.add(elem);else{if(elem.nodeType==1)scripts=scripts.add(jQuery("script",elem).remove());callback.call(obj,elem);}});scripts.each(evalScript);});}};jQuery.fn.init.prototype=jQuery.fn;function evalScript(i,elem){if(elem.src)jQuery.ajax({url:elem.src,async:false,dataType:"script"});else
  429. jQuery.globalEval(elem.text||elem.textContent||elem.innerHTML||"");if(elem.parentNode)elem.parentNode.removeChild(elem);}function now(){return+new Date;}jQuery.extend=jQuery.fn.extend=function(){var target=arguments[0]||{},i=1,length=arguments.length,deep=false,options;if(target.constructor==Boolean){deep=target;target=arguments[1]||{};i=2;}if(typeof target!="object"&&typeof target!="function")target={};if(length==i){target=this;--i;}for(;i<length;i++)if((options=arguments[i])!=null)for(var name in options){var src=target[name],copy=options[name];if(target===copy)continue;if(deep&&copy&&typeof copy=="object"&&!copy.nodeType)target[name]=jQuery.extend(deep,src||(copy.length!=null?[]:{}),copy);else if(copy!==undefined)target[name]=copy;}return target;};var expando="jQuery"+now(),uuid=0,windowData={},exclude=/z-?index|font-?weight|opacity|zoom|line-?height/i,defaultView=document.defaultView||{};jQuery.extend({noConflict:function(deep){window.$=_$;if(deep)window.jQuery=_jQuery;return jQuery;},isFunction:function(fn){return!!fn&&typeof fn!="string"&&!fn.nodeName&&fn.constructor!=Array&&/^[\s[]?function/.test(fn+"");},isXMLDoc:function(elem){return elem.documentElement&&!elem.body||elem.tagName&&elem.ownerDocument&&!elem.ownerDocument.body;},globalEval:function(data){data=jQuery.trim(data);if(data){var head=document.getElementsByTagName("head")[0]||document.documentElement,script=document.createElement("script");script.type="text/javascript";if(jQuery.browser.msie)script.text=data;else
  430. script.appendChild(document.createTextNode(data));head.insertBefore(script,head.firstChild);head.removeChild(script);}},nodeName:function(elem,name){return elem.nodeName&&elem.nodeName.toUpperCase()==name.toUpperCase();},cache:{},data:function(elem,name,data){elem=elem==window?windowData:elem;var id=elem[expando];if(!id)id=elem[expando]=++uuid;if(name&&!jQuery.cache[id])jQuery.cache[id]={};if(data!==undefined)jQuery.cache[id][name]=data;return name?jQuery.cache[id][name]:id;},removeData:function(elem,name){elem=elem==window?windowData:elem;var id=elem[expando];if(name){if(jQuery.cache[id]){delete jQuery.cache[id][name];name="";for(name in jQuery.cache[id])break;if(!name)jQuery.removeData(elem);}}else{try{delete elem[expando];}catch(e){if(elem.removeAttribute)elem.removeAttribute(expando);}delete jQuery.cache[id];}},each:function(object,callback,args){var name,i=0,length=object.length;if(args){if(length==undefined){for(name in object)if(callback.apply(object[name],args)===false)break;}else
  431. for(;i<length;)if(callback.apply(object[i++],args)===false)break;}else{if(length==undefined){for(name in object)if(callback.call(object[name],name,object[name])===false)break;}else
  432. for(var value=object[0];i<length&&callback.call(value,i,value)!==false;value=object[++i]){}}return object;},prop:function(elem,value,type,i,name){if(jQuery.isFunction(value))value=value.call(elem,i);return value&&value.constructor==Number&&type=="curCSS"&&!exclude.test(name)?value+"px":value;},className:{add:function(elem,classNames){jQuery.each((classNames||"").split(/\s+/),function(i,className){if(elem.nodeType==1&&!jQuery.className.has(elem.className,className))elem.className+=(elem.className?" ":"")+className;});},remove:function(elem,classNames){if(elem.nodeType==1)elem.className=classNames!=undefined?jQuery.grep(elem.className.split(/\s+/),function(className){return!jQuery.className.has(classNames,className);}).join(" "):"";},has:function(elem,className){return jQuery.inArray(className,(elem.className||elem).toString().split(/\s+/))>-1;}},swap:function(elem,options,callback){var old={};for(var name in options){old[name]=elem.style[name];elem.style[name]=options[name];}callback.call(elem);for(var name in options)elem.style[name]=old[name];},css:function(elem,name,force){if(name=="width"||name=="height"){var val,props={position:"absolute",visibility:"hidden",display:"block"},which=name=="width"?["Left","Right"]:["Top","Bottom"];function getWH(){val=name=="width"?elem.offsetWidth:elem.offsetHeight;var padding=0,border=0;jQuery.each(which,function(){padding+=parseFloat(jQuery.curCSS(elem,"padding"+this,true))||0;border+=parseFloat(jQuery.curCSS(elem,"border"+this+"Width",true))||0;});val-=Math.round(padding+border);}if(jQuery(elem).is(":visible"))getWH();else
  433. jQuery.swap(elem,props,getWH);return Math.max(0,val);}return jQuery.curCSS(elem,name,force);},curCSS:function(elem,name,force){var ret,style=elem.style;function color(elem){if(!jQuery.browser.safari)return false;var ret=defaultView.getComputedStyle(elem,null);return!ret||ret.getPropertyValue("color")=="";}if(name=="opacity"&&jQuery.browser.msie){ret=jQuery.attr(style,"opacity");return ret==""?"1":ret;}if(jQuery.browser.opera&&name=="display"){var save=style.outline;style.outline="0 solid black";style.outline=save;}if(name.match(/float/i))name=styleFloat;if(!force&&style&&style[name])ret=style[name];else if(defaultView.getComputedStyle){if(name.match(/float/i))name="float";name=name.replace(/([A-Z])/g,"-$1").toLowerCase();var computedStyle=defaultView.getComputedStyle(elem,null);if(computedStyle&&!color(elem))ret=computedStyle.getPropertyValue(name);else{var swap=[],stack=[],a=elem,i=0;for(;a&&color(a);a=a.parentNode)stack.unshift(a);for(;i<stack.length;i++)if(color(stack[i])){swap[i]=stack[i].style.display;stack[i].style.display="block";}ret=name=="display"&&swap[stack.length-1]!=null?"none":(computedStyle&&computedStyle.getPropertyValue(name))||"";for(i=0;i<swap.length;i++)if(swap[i]!=null)stack[i].style.display=swap[i];}if(name=="opacity"&&ret=="")ret="1";}else if(elem.currentStyle){var camelCase=name.replace(/\-(\w)/g,function(all,letter){return letter.toUpperCase();});ret=elem.currentStyle[name]||elem.currentStyle[camelCase];if(!/^\d+(px)?$/i.test(ret)&&/^\d/.test(ret)){var left=style.left,rsLeft=elem.runtimeStyle.left;elem.runtimeStyle.left=elem.currentStyle.left;style.left=ret||0;ret=style.pixelLeft+"px";style.left=left;elem.runtimeStyle.left=rsLeft;}}return ret;},clean:function(elems,context){var ret=[];context=context||document;if(typeof context.createElement=='undefined')context=context.ownerDocument||context[0]&&context[0].ownerDocument||document;jQuery.each(elems,function(i,elem){if(!elem)return;if(elem.constructor==Number)elem+='';if(typeof elem=="string"){elem=elem.replace(/(<(\w+)[^>]*?)\/>/g,function(all,front,tag){return tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?all:front+"></"+tag+">";});var tags=jQuery.trim(elem).toLowerCase(),div=context.createElement("div");var wrap=!tags.indexOf("<opt")&&[1,"<select multiple='multiple'>","</select>"]||!tags.indexOf("<leg")&&[1,"<fieldset>","</fieldset>"]||tags.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"<table>","</table>"]||!tags.indexOf("<tr")&&[2,"<table><tbody>","</tbody></table>"]||(!tags.indexOf("<td")||!tags.indexOf("<th"))&&[3,"<table><tbody><tr>","</tr></tbody></table>"]||!tags.indexOf("<col")&&[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"]||jQuery.browser.msie&&[1,"div<div>","</div>"]||[0,"",""];div.innerHTML=wrap[1]+elem+wrap[2];while(wrap[0]--)div=div.lastChild;if(jQuery.browser.msie){var tbody=!tags.indexOf("<table")&&tags.indexOf("<tbody")<0?div.firstChild&&div.firstChild.childNodes:wrap[1]=="<table>"&&tags.indexOf("<tbody")<0?div.childNodes:[];for(var j=tbody.length-1;j>=0;--j)if(jQuery.nodeName(tbody[j],"tbody")&&!tbody[j].childNodes.length)tbody[j].parentNode.removeChild(tbody[j]);if(/^\s/.test(elem))div.insertBefore(context.createTextNode(elem.match(/^\s*/)[0]),div.firstChild);}elem=jQuery.makeArray(div.childNodes);}if(elem.length===0&&(!jQuery.nodeName(elem,"form")&&!jQuery.nodeName(elem,"select")))return;if(elem[0]==undefined||jQuery.nodeName(elem,"form")||elem.options)ret.push(elem);else
  434. ret=jQuery.merge(ret,elem);});return ret;},attr:function(elem,name,value){if(!elem||elem.nodeType==3||elem.nodeType==8)return undefined;var notxml=!jQuery.isXMLDoc(elem),set=value!==undefined,msie=jQuery.browser.msie;name=notxml&&jQuery.props[name]||name;if(elem.tagName){var special=/href|src|style/.test(name);if(name=="selected"&&jQuery.browser.safari)elem.parentNode.selectedIndex;if(name in elem&&notxml&&!special){if(set){if(name=="type"&&jQuery.nodeName(elem,"input")&&elem.parentNode)throw"type property can't be changed";elem[name]=value;}if(jQuery.nodeName(elem,"form")&&elem.getAttributeNode(name))return elem.getAttributeNode(name).nodeValue;return elem[name];}if(msie&&notxml&&name=="style")return jQuery.attr(elem.style,"cssText",value);if(set)elem.setAttribute(name,""+value);var attr=msie&&notxml&&special?elem.getAttribute(name,2):elem.getAttribute(name);return attr===null?undefined:attr;}if(msie&&name=="opacity"){if(set){elem.zoom=1;elem.filter=(elem.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(value)+''=="NaN"?"":"alpha(opacity="+value*100+")");}return elem.filter&&elem.filter.indexOf("opacity=")>=0?(parseFloat(elem.filter.match(/opacity=([^)]*)/)[1])/100)+'':"";}name=name.replace(/-([a-z])/ig,function(all,letter){return letter.toUpperCase();});if(set)elem[name]=value;return elem[name];},trim:function(text){return(text||"").replace(/^\s+|\s+$/g,"");},makeArray:function(array){var ret=[];if(array!=null){var i=array.length;if(i==null||array.split||array.setInterval||array.call)ret[0]=array;else
  435. while(i)ret[--i]=array[i];}return ret;},inArray:function(elem,array){for(var i=0,length=array.length;i<length;i++)if(array[i]===elem)return i;return-1;},merge:function(first,second){var i=0,elem,pos=first.length;if(jQuery.browser.msie){while(elem=second[i++])if(elem.nodeType!=8)first[pos++]=elem;}else
  436. while(elem=second[i++])first[pos++]=elem;return first;},unique:function(array){var ret=[],done={};try{for(var i=0,length=array.length;i<length;i++){var id=jQuery.data(array[i]);if(!done[id]){done[id]=true;ret.push(array[i]);}}}catch(e){ret=array;}return ret;},grep:function(elems,callback,inv){var ret=[];for(var i=0,length=elems.length;i<length;i++)if(!inv!=!callback(elems[i],i))ret.push(elems[i]);return ret;},map:function(elems,callback){var ret=[];for(var i=0,length=elems.length;i<length;i++){var value=callback(elems[i],i);if(value!=null)ret[ret.length]=value;}return ret.concat.apply([],ret);}});var userAgent=navigator.userAgent.toLowerCase();jQuery.browser={version:(userAgent.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[])[1],safari:/webkit/.test(userAgent),opera:/opera/.test(userAgent),msie:/msie/.test(userAgent)&&!/opera/.test(userAgent),mozilla:/mozilla/.test(userAgent)&&!/(compatible|webkit)/.test(userAgent)};var styleFloat=jQuery.browser.msie?"styleFloat":"cssFloat";jQuery.extend({boxModel:!jQuery.browser.msie||document.compatMode=="CSS1Compat",props:{"for":"htmlFor","class":"className","float":styleFloat,cssFloat:styleFloat,styleFloat:styleFloat,readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing"}});jQuery.each({parent:function(elem){return elem.parentNode;},parents:function(elem){return jQuery.dir(elem,"parentNode");},next:function(elem){return jQuery.nth(elem,2,"nextSibling");},prev:function(elem){return jQuery.nth(elem,2,"previousSibling");},nextAll:function(elem){return jQuery.dir(elem,"nextSibling");},prevAll:function(elem){return jQuery.dir(elem,"previousSibling");},siblings:function(elem){return jQuery.sibling(elem.parentNode.firstChild,elem);},children:function(elem){return jQuery.sibling(elem.firstChild);},contents:function(elem){return jQuery.nodeName(elem,"iframe")?elem.contentDocument||elem.contentWindow.document:jQuery.makeArray(elem.childNodes);}},function(name,fn){jQuery.fn[name]=function(selector){var ret=jQuery.map(this,fn);if(selector&&typeof selector=="string")ret=jQuery.multiFilter(selector,ret);return this.pushStack(jQuery.unique(ret));};});jQuery.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(name,original){jQuery.fn[name]=function(){var args=arguments;return this.each(function(){for(var i=0,length=args.length;i<length;i++)jQuery(args[i])[original](this);});};});jQuery.each({removeAttr:function(name){jQuery.attr(this,name,"");if(this.nodeType==1)this.removeAttribute(name);},addClass:function(classNames){jQuery.className.add(this,classNames);},removeClass:function(classNames){jQuery.className.remove(this,classNames);},toggleClass:function(classNames){jQuery.className[jQuery.className.has(this,classNames)?"remove":"add"](this,classNames);},remove:function(selector){if(!selector||jQuery.filter(selector,[this]).r.length){jQuery("*",this).add(this).each(function(){jQuery.event.remove(this);jQuery.removeData(this);});if(this.parentNode)this.parentNode.removeChild(this);}},empty:function(){jQuery(">*",this).remove();while(this.firstChild)this.removeChild(this.firstChild);}},function(name,fn){jQuery.fn[name]=function(){return this.each(fn,arguments);};});jQuery.each(["Height","Width"],function(i,name){var type=name.toLowerCase();jQuery.fn[type]=function(size){return this[0]==window?jQuery.browser.opera&&document.body["client"+name]||jQuery.browser.safari&&window["inner"+name]||document.compatMode=="CSS1Compat"&&document.documentElement["client"+name]||document.body["client"+name]:this[0]==document?Math.max(Math.max(document.body["scroll"+name],document.documentElement["scroll"+name]),Math.max(document.body["offset"+name],document.documentElement["offset"+name])):size==undefined?(this.length?jQuery.css(this[0],type):null):this.css(type,size.constructor==String?size:size+"px");};});function num(elem,prop){return elem[0]&&parseInt(jQuery.curCSS(elem[0],prop,true),10)||0;}var chars=jQuery.browser.safari&&parseInt(jQuery.browser.version)<417?"(?:[\\w*_-]|\\\\.)":"(?:[\\w\u0128-\uFFFF*_-]|\\\\.)",quickChild=new RegExp("^>\\s*("+chars+"+)"),quickID=new RegExp("^("+chars+"+)(#)("+chars+"+)"),quickClass=new RegExp("^([#.]?)("+chars+"*)");jQuery.extend({expr:{"":function(a,i,m){return m[2]=="*"||jQuery.nodeName(a,m[2]);},"#":function(a,i,m){return a.getAttribute("id")==m[2];},":":{lt:function(a,i,m){return i<m[3]-0;},gt:function(a,i,m){return i>m[3]-0;},nth:function(a,i,m){return m[3]-0==i;},eq:function(a,i,m){return m[3]-0==i;},first:function(a,i){return i==0;},last:function(a,i,m,r){return i==r.length-1;},even:function(a,i){return i%2==0;},odd:function(a,i){return i%2;},"first-child":function(a){return a.parentNode.getElementsByTagName("*")[0]==a;},"last-child":function(a){return jQuery.nth(a.parentNode.lastChild,1,"previousSibling")==a;},"only-child":function(a){return!jQuery.nth(a.parentNode.lastChild,2,"previousSibling");},parent:function(a){return a.firstChild;},empty:function(a){return!a.firstChild;},contains:function(a,i,m){return(a.textContent||a.innerText||jQuery(a).text()||"").indexOf(m[3])>=0;},visible:function(a){return"hidden"!=a.type&&jQuery.css(a,"display")!="none"&&jQuery.css(a,"visibility")!="hidden";},hidden:function(a){return"hidden"==a.type||jQuery.css(a,"display")=="none"||jQuery.css(a,"visibility")=="hidden";},enabled:function(a){return!a.disabled;},disabled:function(a){return a.disabled;},checked:function(a){return a.checked;},selected:function(a){return a.selected||jQuery.attr(a,"selected");},text:function(a){return"text"==a.type;},radio:function(a){return"radio"==a.type;},checkbox:function(a){return"checkbox"==a.type;},file:function(a){return"file"==a.type;},password:function(a){return"password"==a.type;},submit:function(a){return"submit"==a.type;},image:function(a){return"image"==a.type;},reset:function(a){return"reset"==a.type;},button:function(a){return"button"==a.type||jQuery.nodeName(a,"button");},input:function(a){return/input|select|textarea|button/i.test(a.nodeName);},has:function(a,i,m){return jQuery.find(m[3],a).length;},header:function(a){return/h\d/i.test(a.nodeName);},animated:function(a){return jQuery.grep(jQuery.timers,function(fn){return a==fn.elem;}).length;}}},parse:[/^(\[) *@?([\w-]+) *([!*$^~=]*) *('?"?)(.*?)\4 *\]/,/^(:)([\w-]+)\("?'?(.*?(\(.*?\))?[^(]*?)"?'?\)/,new RegExp("^([:.#]*)("+chars+"+)")],multiFilter:function(expr,elems,not){var old,cur=[];while(expr&&expr!=old){old=expr;var f=jQuery.filter(expr,elems,not);expr=f.t.replace(/^\s*,\s*/,"");cur=not?elems=f.r:jQuery.merge(cur,f.r);}return cur;},find:function(t,context){if(typeof t!="string")return[t];if(context&&context.nodeType!=1&&context.nodeType!=9)return[];context=context||document;var ret=[context],done=[],last,nodeName;while(t&&last!=t){var r=[];last=t;t=jQuery.trim(t);var foundToken=false,re=quickChild,m=re.exec(t);if(m){nodeName=m[1].toUpperCase();for(var i=0;ret[i];i++)for(var c=ret[i].firstChild;c;c=c.nextSibling)if(c.nodeType==1&&(nodeName=="*"||c.nodeName.toUpperCase()==nodeName))r.push(c);ret=r;t=t.replace(re,"");if(t.indexOf(" ")==0)continue;foundToken=true;}else{re=/^([>+~])\s*(\w*)/i;if((m=re.exec(t))!=null){r=[];var merge={};nodeName=m[2].toUpperCase();m=m[1];for(var j=0,rl=ret.length;j<rl;j++){var n=m=="~"||m=="+"?ret[j].nextSibling:ret[j].firstChild;for(;n;n=n.nextSibling)if(n.nodeType==1){var id=jQuery.data(n);if(m=="~"&&merge[id])break;if(!nodeName||n.nodeName.toUpperCase()==nodeName){if(m=="~")merge[id]=true;r.push(n);}if(m=="+")break;}}ret=r;t=jQuery.trim(t.replace(re,""));foundToken=true;}}if(t&&!foundToken){if(!t.indexOf(",")){if(context==ret[0])ret.shift();done=jQuery.merge(done,ret);r=ret=[context];t=" "+t.substr(1,t.length);}else{var re2=quickID;var m=re2.exec(t);if(m){m=[0,m[2],m[3],m[1]];}else{re2=quickClass;m=re2.exec(t);}m[2]=m[2].replace(/\\/g,"");var elem=ret[ret.length-1];if(m[1]=="#"&&elem&&elem.getElementById&&!jQuery.isXMLDoc(elem)){var oid=elem.getElementById(m[2]);if((jQuery.browser.msie||jQuery.browser.opera)&&oid&&typeof oid.id=="string"&&oid.id!=m[2])oid=jQuery('[@id="'+m[2]+'"]',elem)[0];ret=r=oid&&(!m[3]||jQuery.nodeName(oid,m[3]))?[oid]:[];}else{for(var i=0;ret[i];i++){var tag=m[1]=="#"&&m[3]?m[3]:m[1]!=""||m[0]==""?"*":m[2];if(tag=="*"&&ret[i].nodeName.toLowerCase()=="object")tag="param";r=jQuery.merge(r,ret[i].getElementsByTagName(tag));}if(m[1]==".")r=jQuery.classFilter(r,m[2]);if(m[1]=="#"){var tmp=[];for(var i=0;r[i];i++)if(r[i].getAttribute("id")==m[2]){tmp=[r[i]];break;}r=tmp;}ret=r;}t=t.replace(re2,"");}}if(t){var val=jQuery.filter(t,r);ret=r=val.r;t=jQuery.trim(val.t);}}if(t)ret=[];if(ret&&context==ret[0])ret.shift();done=jQuery.merge(done,ret);return done;},classFilter:function(r,m,not){m=" "+m+" ";var tmp=[];for(var i=0;r[i];i++){var pass=(" "+r[i].className+" ").indexOf(m)>=0;if(!not&&pass||not&&!pass)tmp.push(r[i]);}return tmp;},filter:function(t,r,not){var last;while(t&&t!=last){last=t;var p=jQuery.parse,m;for(var i=0;p[i];i++){m=p[i].exec(t);if(m){t=t.substring(m[0].length);m[2]=m[2].replace(/\\/g,"");break;}}if(!m)break;if(m[1]==":"&&m[2]=="not")r=isSimple.test(m[3])?jQuery.filter(m[3],r,true).r:jQuery(r).not(m[3]);else if(m[1]==".")r=jQuery.classFilter(r,m[2],not);else if(m[1]=="["){var tmp=[],type=m[3];for(var i=0,rl=r.length;i<rl;i++){var a=r[i],z=a[jQuery.props[m[2]]||m[2]];if(z==null||/href|src|selected/.test(m[2]))z=jQuery.attr(a,m[2])||'';if((type==""&&!!z||type=="="&&z==m[5]||type=="!="&&z!=m[5]||type=="^="&&z&&!z.indexOf(m[5])||type=="$="&&z.substr(z.length-m[5].length)==m[5]||(type=="*="||type=="~=")&&z.indexOf(m[5])>=0)^not)tmp.push(a);}r=tmp;}else if(m[1]==":"&&m[2]=="nth-child"){var merge={},tmp=[],test=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(m[3]=="even"&&"2n"||m[3]=="odd"&&"2n+1"||!/\D/.test(m[3])&&"0n+"+m[3]||m[3]),first=(test[1]+(test[2]||1))-0,last=test[3]-0;for(var i=0,rl=r.length;i<rl;i++){var node=r[i],parentNode=node.parentNode,id=jQuery.data(parentNode);if(!merge[id]){var c=1;for(var n=parentNode.firstChild;n;n=n.nextSibling)if(n.nodeType==1)n.nodeIndex=c++;merge[id]=true;}var add=false;if(first==0){if(node.nodeIndex==last)add=true;}else if((node.nodeIndex-last)%first==0&&(node.nodeIndex-last)/first>=0)add=true;if(add^not)tmp.push(node);}r=tmp;}else{var fn=jQuery.expr[m[1]];if(typeof fn=="object")fn=fn[m[2]];if(typeof fn=="string")fn=eval("false||function(a,i){return "+fn+";}");r=jQuery.grep(r,function(elem,i){return fn(elem,i,m,r);},not);}}return{r:r,t:t};},dir:function(elem,dir){var matched=[],cur=elem[dir];while(cur&&cur!=document){if(cur.nodeType==1)matched.push(cur);cur=cur[dir];}return matched;},nth:function(cur,result,dir,elem){result=result||1;var num=0;for(;cur;cur=cur[dir])if(cur.nodeType==1&&++num==result)break;return cur;},sibling:function(n,elem){var r=[];for(;n;n=n.nextSibling){if(n.nodeType==1&&n!=elem)r.push(n);}return r;}});jQuery.event={add:function(elem,types,handler,data){if(elem.nodeType==3||elem.nodeType==8)return;if(jQuery.browser.msie&&elem.setInterval)elem=window;if(!handler.guid)handler.guid=this.guid++;if(data!=undefined){var fn=handler;handler=this.proxy(fn,function(){return fn.apply(this,arguments);});handler.data=data;}var events=jQuery.data(elem,"events")||jQuery.data(elem,"events",{}),handle=jQuery.data(elem,"handle")||jQuery.data(elem,"handle",function(){if(typeof jQuery!="undefined"&&!jQuery.event.triggered)return jQuery.event.handle.apply(arguments.callee.elem,arguments);});handle.elem=elem;jQuery.each(types.split(/\s+/),function(index,type){var parts=type.split(".");type=parts[0];handler.type=parts[1];var handlers=events[type];if(!handlers){handlers=events[type]={};if(!jQuery.event.special[type]||jQuery.event.special[type].setup.call(elem)===false){if(elem.addEventListener)elem.addEventListener(type,handle,false);else if(elem.attachEvent)elem.attachEvent("on"+type,handle);}}handlers[handler.guid]=handler;jQuery.event.global[type]=true;});elem=null;},guid:1,global:{},remove:function(elem,types,handler){if(elem.nodeType==3||elem.nodeType==8)return;var events=jQuery.data(elem,"events"),ret,index;if(events){if(types==undefined||(typeof types=="string"&&types.charAt(0)=="."))for(var type in events)this.remove(elem,type+(types||""));else{if(types.type){handler=types.handler;types=types.type;}jQuery.each(types.split(/\s+/),function(index,type){var parts=type.split(".");type=parts[0];if(events[type]){if(handler)delete events[type][handler.guid];else
  437. for(handler in events[type])if(!parts[1]||events[type][handler].type==parts[1])delete events[type][handler];for(ret in events[type])break;if(!ret){if(!jQuery.event.special[type]||jQuery.event.special[type].teardown.call(elem)===false){if(elem.removeEventListener)elem.removeEventListener(type,jQuery.data(elem,"handle"),false);else if(elem.detachEvent)elem.detachEvent("on"+type,jQuery.data(elem,"handle"));}ret=null;delete events[type];}}});}for(ret in events)break;if(!ret){var handle=jQuery.data(elem,"handle");if(handle)handle.elem=null;jQuery.removeData(elem,"events");jQuery.removeData(elem,"handle");}}},trigger:function(type,data,elem,donative,extra){data=jQuery.makeArray(data);if(type.indexOf("!")>=0){type=type.slice(0,-1);var exclusive=true;}if(!elem){if(this.global[type])jQuery("*").add([window,document]).trigger(type,data);}else{if(elem.nodeType==3||elem.nodeType==8)return undefined;var val,ret,fn=jQuery.isFunction(elem[type]||null),event=!data[0]||!data[0].preventDefault;if(event){data.unshift({type:type,target:elem,preventDefault:function(){},stopPropagation:function(){},timeStamp:now()});data[0][expando]=true;}data[0].type=type;if(exclusive)data[0].exclusive=true;var handle=jQuery.data(elem,"handle");if(handle)val=handle.apply(elem,data);if((!fn||(jQuery.nodeName(elem,'a')&&type=="click"))&&elem["on"+type]&&elem["on"+type].apply(elem,data)===false)val=false;if(event)data.shift();if(extra&&jQuery.isFunction(extra)){ret=extra.apply(elem,val==null?data:data.concat(val));if(ret!==undefined)val=ret;}if(fn&&donative!==false&&val!==false&&!(jQuery.nodeName(elem,'a')&&type=="click")){this.triggered=true;try{elem[type]();}catch(e){}}this.triggered=false;}return val;},handle:function(event){var val,ret,namespace,all,handlers;event=arguments[0]=jQuery.event.fix(event||window.event);namespace=event.type.split(".");event.type=namespace[0];namespace=namespace[1];all=!namespace&&!event.exclusive;handlers=(jQuery.data(this,"events")||{})[event.type];for(var j in handlers){var handler=handlers[j];if(all||handler.type==namespace){event.handler=handler;event.data=handler.data;ret=handler.apply(this,arguments);if(val!==false)val=ret;if(ret===false){event.preventDefault();event.stopPropagation();}}}return val;},fix:function(event){if(event[expando]==true)return event;var originalEvent=event;event={originalEvent:originalEvent};var props="altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target timeStamp toElement type view wheelDelta which".split(" ");for(var i=props.length;i;i--)event[props[i]]=originalEvent[props[i]];event[expando]=true;event.preventDefault=function(){if(originalEvent.preventDefault)originalEvent.preventDefault();originalEvent.returnValue=false;};event.stopPropagation=function(){if(originalEvent.stopPropagation)originalEvent.stopPropagation();originalEvent.cancelBubble=true;};event.timeStamp=event.timeStamp||now();if(!event.target)event.target=event.srcElement||document;if(event.target.nodeType==3)event.target=event.target.parentNode;if(!event.relatedTarget&&event.fromElement)event.relatedTarget=event.fromElement==event.target?event.toElement:event.fromElement;if(event.pageX==null&&event.clientX!=null){var doc=document.documentElement,body=document.body;event.pageX=event.clientX+(doc&&doc.scrollLeft||body&&body.scrollLeft||0)-(doc.clientLeft||0);event.pageY=event.clientY+(doc&&doc.scrollTop||body&&body.scrollTop||0)-(doc.clientTop||0);}if(!event.which&&((event.charCode||event.charCode===0)?event.charCode:event.keyCode))event.which=event.charCode||event.keyCode;if(!event.metaKey&&event.ctrlKey)event.metaKey=event.ctrlKey;if(!event.which&&event.button)event.which=(event.button&1?1:(event.button&2?3:(event.button&4?2:0)));return event;},proxy:function(fn,proxy){proxy.guid=fn.guid=fn.guid||proxy.guid||this.guid++;return proxy;},special:{ready:{setup:function(){bindReady();return;},teardown:function(){return;}},mouseenter:{setup:function(){if(jQuery.browser.msie)return false;jQuery(this).bind("mouseover",jQuery.event.special.mouseenter.handler);return true;},teardown:function(){if(jQuery.browser.msie)return false;jQuery(this).unbind("mouseover",jQuery.event.special.mouseenter.handler);return true;},handler:function(event){if(withinElement(event,this))return true;event.type="mouseenter";return jQuery.event.handle.apply(this,arguments);}},mouseleave:{setup:function(){if(jQuery.browser.msie)return false;jQuery(this).bind("mouseout",jQuery.event.special.mouseleave.handler);return true;},teardown:function(){if(jQuery.browser.msie)return false;jQuery(this).unbind("mouseout",jQuery.event.special.mouseleave.handler);return true;},handler:function(event){if(withinElement(event,this))return true;event.type="mouseleave";return jQuery.event.handle.apply(this,arguments);}}}};jQuery.fn.extend({bind:function(type,data,fn){return type=="unload"?this.one(type,data,fn):this.each(function(){jQuery.event.add(this,type,fn||data,fn&&data);});},one:function(type,data,fn){var one=jQuery.event.proxy(fn||data,function(event){jQuery(this).unbind(event,one);return(fn||data).apply(this,arguments);});return this.each(function(){jQuery.event.add(this,type,one,fn&&data);});},unbind:function(type,fn){return this.each(function(){jQuery.event.remove(this,type,fn);});},trigger:function(type,data,fn){return this.each(function(){jQuery.event.trigger(type,data,this,true,fn);});},triggerHandler:function(type,data,fn){return this[0]&&jQuery.event.trigger(type,data,this[0],false,fn);},toggle:function(fn){var args=arguments,i=1;while(i<args.length)jQuery.event.proxy(fn,args[i++]);return this.click(jQuery.event.proxy(fn,function(event){this.lastToggle=(this.lastToggle||0)%i;event.preventDefault();return args[this.lastToggle++].apply(this,arguments)||false;}));},hover:function(fnOver,fnOut){return this.bind('mouseenter',fnOver).bind('mouseleave',fnOut);},ready:function(fn){bindReady();if(jQuery.isReady)fn.call(document,jQuery);else
  438. jQuery.readyList.push(function(){return fn.call(this,jQuery);});return this;}});jQuery.extend({isReady:false,readyList:[],ready:function(){if(!jQuery.isReady){jQuery.isReady=true;if(jQuery.readyList){jQuery.each(jQuery.readyList,function(){this.call(document);});jQuery.readyList=null;}jQuery(document).triggerHandler("ready");}}});var readyBound=false;function bindReady(){if(readyBound)return;readyBound=true;if(document.addEventListener&&!jQuery.browser.opera)document.addEventListener("DOMContentLoaded",jQuery.ready,false);if(jQuery.browser.msie&&window==top)(function(){if(jQuery.isReady)return;try{document.documentElement.doScroll("left");}catch(error){setTimeout(arguments.callee,0);return;}jQuery.ready();})();if(jQuery.browser.opera)document.addEventListener("DOMContentLoaded",function(){if(jQuery.isReady)return;for(var i=0;i<document.styleSheets.length;i++)if(document.styleSheets[i].disabled){setTimeout(arguments.callee,0);return;}jQuery.ready();},false);if(jQuery.browser.safari){var numStyles;(function(){if(jQuery.isReady)return;if(document.readyState!="loaded"&&document.readyState!="complete"){setTimeout(arguments.callee,0);return;}if(numStyles===undefined)numStyles=jQuery("style, link[rel=stylesheet]").length;if(document.styleSheets.length!=numStyles){setTimeout(arguments.callee,0);return;}jQuery.ready();})();}jQuery.event.add(window,"load",jQuery.ready);}jQuery.each(("blur,focus,load,resize,scroll,unload,click,dblclick,"+"mousedown,mouseup,mousemove,mouseover,mouseout,change,select,"+"submit,keydown,keypress,keyup,error").split(","),function(i,name){jQuery.fn[name]=function(fn){return fn?this.bind(name,fn):this.trigger(name);};});var withinElement=function(event,elem){var parent=event.relatedTarget;while(parent&&parent!=elem)try{parent=parent.parentNode;}catch(error){parent=elem;}return parent==elem;};jQuery(window).bind("unload",function(){jQuery("*").add(document).unbind();});jQuery.fn.extend({_load:jQuery.fn.load,load:function(url,params,callback){if(typeof url!='string')return this._load(url);var off=url.indexOf(" ");if(off>=0){var selector=url.slice(off,url.length);url=url.slice(0,off);}callback=callback||function(){};var type="GET";if(params)if(jQuery.isFunction(params)){callback=params;params=null;}else{params=jQuery.param(params);type="POST";}var self=this;jQuery.ajax({url:url,type:type,dataType:"html",data:params,complete:function(res,status){if(status=="success"||status=="notmodified")self.html(selector?jQuery("<div/>").append(res.responseText.replace(/<script(.|\s)*?\/script>/g,"")).find(selector):res.responseText);self.each(callback,[res.responseText,status,res]);}});return this;},serialize:function(){return jQuery.param(this.serializeArray());},serializeArray:function(){return this.map(function(){return jQuery.nodeName(this,"form")?jQuery.makeArray(this.elements):this;}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password/i.test(this.type));}).map(function(i,elem){var val=jQuery(this).val();return val==null?null:val.constructor==Array?jQuery.map(val,function(val,i){return{name:elem.name,value:val};}):{name:elem.name,value:val};}).get();}});jQuery.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(i,o){jQuery.fn[o]=function(f){return this.bind(o,f);};});var jsc=now();jQuery.extend({get:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;data=null;}return jQuery.ajax({type:"GET",url:url,data:data,success:callback,dataType:type});},getScript:function(url,callback){return jQuery.get(url,null,callback,"script");},getJSON:function(url,data,callback){return jQuery.get(url,data,callback,"json");},post:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;data={};}return jQuery.ajax({type:"POST",url:url,data:data,success:callback,dataType:type});},ajaxSetup:function(settings){jQuery.extend(jQuery.ajaxSettings,settings);},ajaxSettings:{url:location.href,global:true,type:"GET",timeout:0,contentType:"application/x-www-form-urlencoded",processData:true,async:true,data:null,username:null,password:null,accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(s){s=jQuery.extend(true,s,jQuery.extend(true,{},jQuery.ajaxSettings,s));var jsonp,jsre=/=\?(&|$)/g,status,data,type=s.type.toUpperCase();if(s.data&&s.processData&&typeof s.data!="string")s.data=jQuery.param(s.data);if(s.dataType=="jsonp"){if(type=="GET"){if(!s.url.match(jsre))s.url+=(s.url.match(/\?/)?"&":"?")+(s.jsonp||"callback")+"=?";}else if(!s.data||!s.data.match(jsre))s.data=(s.data?s.data+"&":"")+(s.jsonp||"callback")+"=?";s.dataType="json";}if(s.dataType=="json"&&(s.data&&s.data.match(jsre)||s.url.match(jsre))){jsonp="jsonp"+jsc++;if(s.data)s.data=(s.data+"").replace(jsre,"="+jsonp+"$1");s.url=s.url.replace(jsre,"="+jsonp+"$1");s.dataType="script";window[jsonp]=function(tmp){data=tmp;success();complete();window[jsonp]=undefined;try{delete window[jsonp];}catch(e){}if(head)head.removeChild(script);};}if(s.dataType=="script"&&s.cache==null)s.cache=false;if(s.cache===false&&type=="GET"){var ts=now();var ret=s.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+ts+"$2");s.url=ret+((ret==s.url)?(s.url.match(/\?/)?"&":"?")+"_="+ts:"");}if(s.data&&type=="GET"){s.url+=(s.url.match(/\?/)?"&":"?")+s.data;s.data=null;}if(s.global&&!jQuery.active++)jQuery.event.trigger("ajaxStart");var remote=/^(?:\w+:)?\/\/([^\/?#]+)/;if(s.dataType=="script"&&type=="GET"&&remote.test(s.url)&&remote.exec(s.url)[1]!=location.host){var head=document.getElementsByTagName("head")[0];var script=document.createElement("script");script.src=s.url;if(s.scriptCharset)script.charset=s.scriptCharset;if(!jsonp){var done=false;script.onload=script.onreadystatechange=function(){if(!done&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){done=true;success();complete();head.removeChild(script);}};}head.appendChild(script);return undefined;}var requestDone=false;var xhr=window.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest();if(s.username)xhr.open(type,s.url,s.async,s.username,s.password);else
  439. xhr.open(type,s.url,s.async);try{if(s.data)xhr.setRequestHeader("Content-Type",s.contentType);if(s.ifModified)xhr.setRequestHeader("If-Modified-Since",jQuery.lastModified[s.url]||"Thu, 01 Jan 1970 00:00:00 GMT");xhr.setRequestHeader("X-Requested-With","XMLHttpRequest");xhr.setRequestHeader("Accept",s.dataType&&s.accepts[s.dataType]?s.accepts[s.dataType]+", */*":s.accepts._default);}catch(e){}if(s.beforeSend&&s.beforeSend(xhr,s)===false){s.global&&jQuery.active--;xhr.abort();return false;}if(s.global)jQuery.event.trigger("ajaxSend",[xhr,s]);var onreadystatechange=function(isTimeout){if(!requestDone&&xhr&&(xhr.readyState==4||isTimeout=="timeout")){requestDone=true;if(ival){clearInterval(ival);ival=null;}status=isTimeout=="timeout"&&"timeout"||!jQuery.httpSuccess(xhr)&&"error"||s.ifModified&&jQuery.httpNotModified(xhr,s.url)&&"notmodified"||"success";if(status=="success"){try{data=jQuery.httpData(xhr,s.dataType,s.dataFilter);}catch(e){status="parsererror";}}if(status=="success"){var modRes;try{modRes=xhr.getResponseHeader("Last-Modified");}catch(e){}if(s.ifModified&&modRes)jQuery.lastModified[s.url]=modRes;if(!jsonp)success();}else
  440. jQuery.handleError(s,xhr,status);complete();if(s.async)xhr=null;}};if(s.async){var ival=setInterval(onreadystatechange,13);if(s.timeout>0)setTimeout(function(){if(xhr){xhr.abort();if(!requestDone)onreadystatechange("timeout");}},s.timeout);}try{xhr.send(s.data);}catch(e){jQuery.handleError(s,xhr,null,e);}if(!s.async)onreadystatechange();function success(){if(s.success)s.success(data,status);if(s.global)jQuery.event.trigger("ajaxSuccess",[xhr,s]);}function complete(){if(s.complete)s.complete(xhr,status);if(s.global)jQuery.event.trigger("ajaxComplete",[xhr,s]);if(s.global&&!--jQuery.active)jQuery.event.trigger("ajaxStop");}return xhr;},handleError:function(s,xhr,status,e){if(s.error)s.error(xhr,status,e);if(s.global)jQuery.event.trigger("ajaxError",[xhr,s,e]);},active:0,httpSuccess:function(xhr){try{return!xhr.status&&location.protocol=="file:"||(xhr.status>=200&&xhr.status<300)||xhr.status==304||xhr.status==1223||jQuery.browser.safari&&xhr.status==undefined;}catch(e){}return false;},httpNotModified:function(xhr,url){try{var xhrRes=xhr.getResponseHeader("Last-Modified");return xhr.status==304||xhrRes==jQuery.lastModified[url]||jQuery.browser.safari&&xhr.status==undefined;}catch(e){}return false;},httpData:function(xhr,type,filter){var ct=xhr.getResponseHeader("content-type"),xml=type=="xml"||!type&&ct&&ct.indexOf("xml")>=0,data=xml?xhr.responseXML:xhr.responseText;if(xml&&data.documentElement.tagName=="parsererror")throw"parsererror";if(filter)data=filter(data,type);if(type=="script")jQuery.globalEval(data);if(type=="json")data=eval("("+data+")");return data;},param:function(a){var s=[];if(a.constructor==Array||a.jquery)jQuery.each(a,function(){s.push(encodeURIComponent(this.name)+"="+encodeURIComponent(this.value));});else
  441. for(var j in a)if(a[j]&&a[j].constructor==Array)jQuery.each(a[j],function(){s.push(encodeURIComponent(j)+"="+encodeURIComponent(this));});else
  442. s.push(encodeURIComponent(j)+"="+encodeURIComponent(jQuery.isFunction(a[j])?a[j]():a[j]));return s.join("&").replace(/%20/g,"+");}});jQuery.fn.extend({show:function(speed,callback){return speed?this.animate({height:"show",width:"show",opacity:"show"},speed,callback):this.filter(":hidden").each(function(){this.style.display=this.oldblock||"";if(jQuery.css(this,"display")=="none"){var elem=jQuery("<"+this.tagName+" />").appendTo("body");this.style.display=elem.css("display");if(this.style.display=="none")this.style.display="block";elem.remove();}}).end();},hide:function(speed,callback){return speed?this.animate({height:"hide",width:"hide",opacity:"hide"},speed,callback):this.filter(":visible").each(function(){this.oldblock=this.oldblock||jQuery.css(this,"display");this.style.display="none";}).end();},_toggle:jQuery.fn.toggle,toggle:function(fn,fn2){return jQuery.isFunction(fn)&&jQuery.isFunction(fn2)?this._toggle.apply(this,arguments):fn?this.animate({height:"toggle",width:"toggle",opacity:"toggle"},fn,fn2):this.each(function(){jQuery(this)[jQuery(this).is(":hidden")?"show":"hide"]();});},slideDown:function(speed,callback){return this.animate({height:"show"},speed,callback);},slideUp:function(speed,callback){return this.animate({height:"hide"},speed,callback);},slideToggle:function(speed,callback){return this.animate({height:"toggle"},speed,callback);},fadeIn:function(speed,callback){return this.animate({opacity:"show"},speed,callback);},fadeOut:function(speed,callback){return this.animate({opacity:"hide"},speed,callback);},fadeTo:function(speed,to,callback){return this.animate({opacity:to},speed,callback);},animate:function(prop,speed,easing,callback){var optall=jQuery.speed(speed,easing,callback);return this[optall.queue===false?"each":"queue"](function(){if(this.nodeType!=1)return false;var opt=jQuery.extend({},optall),p,hidden=jQuery(this).is(":hidden"),self=this;for(p in prop){if(prop[p]=="hide"&&hidden||prop[p]=="show"&&!hidden)return opt.complete.call(this);if(p=="height"||p=="width"){opt.display=jQuery.css(this,"display");opt.overflow=this.style.overflow;}}if(opt.overflow!=null)this.style.overflow="hidden";opt.curAnim=jQuery.extend({},prop);jQuery.each(prop,function(name,val){var e=new jQuery.fx(self,opt,name);if(/toggle|show|hide/.test(val))e[val=="toggle"?hidden?"show":"hide":val](prop);else{var parts=val.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),start=e.cur(true)||0;if(parts){var end=parseFloat(parts[2]),unit=parts[3]||"px";if(unit!="px"){self.style[name]=(end||1)+unit;start=((end||1)/e.cur(true))*start;self.style[name]=start+unit;}if(parts[1])end=((parts[1]=="-="?-1:1)*end)+start;e.custom(start,end,unit);}else
  443. e.custom(start,val,"");}});return true;});},queue:function(type,fn){if(jQuery.isFunction(type)||(type&&type.constructor==Array)){fn=type;type="fx";}if(!type||(typeof type=="string"&&!fn))return queue(this[0],type);return this.each(function(){if(fn.constructor==Array)queue(this,type,fn);else{queue(this,type).push(fn);if(queue(this,type).length==1)fn.call(this);}});},stop:function(clearQueue,gotoEnd){var timers=jQuery.timers;if(clearQueue)this.queue([]);this.each(function(){for(var i=timers.length-1;i>=0;i--)if(timers[i].elem==this){if(gotoEnd)timers[i](true);timers.splice(i,1);}});if(!gotoEnd)this.dequeue();return this;}});var queue=function(elem,type,array){if(elem){type=type||"fx";var q=jQuery.data(elem,type+"queue");if(!q||array)q=jQuery.data(elem,type+"queue",jQuery.makeArray(array));}return q;};jQuery.fn.dequeue=function(type){type=type||"fx";return this.each(function(){var q=queue(this,type);q.shift();if(q.length)q[0].call(this);});};jQuery.extend({speed:function(speed,easing,fn){var opt=speed&&speed.constructor==Object?speed:{complete:fn||!fn&&easing||jQuery.isFunction(speed)&&speed,duration:speed,easing:fn&&easing||easing&&easing.constructor!=Function&&easing};opt.duration=(opt.duration&&opt.duration.constructor==Number?opt.duration:jQuery.fx.speeds[opt.duration])||jQuery.fx.speeds.def;opt.old=opt.complete;opt.complete=function(){if(opt.queue!==false)jQuery(this).dequeue();if(jQuery.isFunction(opt.old))opt.old.call(this);};return opt;},easing:{linear:function(p,n,firstNum,diff){return firstNum+diff*p;},swing:function(p,n,firstNum,diff){return((-Math.cos(p*Math.PI)/2)+0.5)*diff+firstNum;}},timers:[],timerId:null,fx:function(elem,options,prop){this.options=options;this.elem=elem;this.prop=prop;if(!options.orig)options.orig={};}});jQuery.fx.prototype={update:function(){if(this.options.step)this.options.step.call(this.elem,this.now,this);(jQuery.fx.step[this.prop]||jQuery.fx.step._default)(this);if(this.prop=="height"||this.prop=="width")this.elem.style.display="block";},cur:function(force){if(this.elem[this.prop]!=null&&this.elem.style[this.prop]==null)return this.elem[this.prop];var r=parseFloat(jQuery.css(this.elem,this.prop,force));return r&&r>-10000?r:parseFloat(jQuery.curCSS(this.elem,this.prop))||0;},custom:function(from,to,unit){this.startTime=now();this.start=from;this.end=to;this.unit=unit||this.unit||"px";this.now=this.start;this.pos=this.state=0;this.update();var self=this;function t(gotoEnd){return self.step(gotoEnd);}t.elem=this.elem;jQuery.timers.push(t);if(jQuery.timerId==null){jQuery.timerId=setInterval(function(){var timers=jQuery.timers;for(var i=0;i<timers.length;i++)if(!timers[i]())timers.splice(i--,1);if(!timers.length){clearInterval(jQuery.timerId);jQuery.timerId=null;}},13);}},show:function(){this.options.orig[this.prop]=jQuery.attr(this.elem.style,this.prop);this.options.show=true;this.custom(0,this.cur());if(this.prop=="width"||this.prop=="height")this.elem.style[this.prop]="1px";jQuery(this.elem).show();},hide:function(){this.options.orig[this.prop]=jQuery.attr(this.elem.style,this.prop);this.options.hide=true;this.custom(this.cur(),0);},step:function(gotoEnd){var t=now();if(gotoEnd||t>this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var done=true;for(var i in this.options.curAnim)if(this.options.curAnim[i]!==true)done=false;if(done){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(jQuery.css(this.elem,"display")=="none")this.elem.style.display="block";}if(this.options.hide)this.elem.style.display="none";if(this.options.hide||this.options.show)for(var p in this.options.curAnim)jQuery.attr(this.elem.style,p,this.options.orig[p]);}if(done)this.options.complete.call(this.elem);return false;}else{var n=t-this.startTime;this.state=n/this.options.duration;this.pos=jQuery.easing[this.options.easing||(jQuery.easing.swing?"swing":"linear")](this.state,n,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update();}return true;}};jQuery.extend(jQuery.fx,{speeds:{slow:600,fast:200,def:400},step:{scrollLeft:function(fx){fx.elem.scrollLeft=fx.now;},scrollTop:function(fx){fx.elem.scrollTop=fx.now;},opacity:function(fx){jQuery.attr(fx.elem.style,"opacity",fx.now);},_default:function(fx){fx.elem.style[fx.prop]=fx.now+fx.unit;}}});jQuery.fn.offset=function(){var left=0,top=0,elem=this[0],results;if(elem)with(jQuery.browser){var parent=elem.parentNode,offsetChild=elem,offsetParent=elem.offsetParent,doc=elem.ownerDocument,safari2=safari&&parseInt(version)<522&&!/adobeair/i.test(userAgent),css=jQuery.curCSS,fixed=css(elem,"position")=="fixed";if(elem.getBoundingClientRect){var box=elem.getBoundingClientRect();add(box.left+Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft),box.top+Math.max(doc.documentElement.scrollTop,doc.body.scrollTop));add(-doc.documentElement.clientLeft,-doc.documentElement.clientTop);}else{add(elem.offsetLeft,elem.offsetTop);while(offsetParent){add(offsetParent.offsetLeft,offsetParent.offsetTop);if(mozilla&&!/^t(able|d|h)$/i.test(offsetParent.tagName)||safari&&!safari2)border(offsetParent);if(!fixed&&css(offsetParent,"position")=="fixed")fixed=true;offsetChild=/^body$/i.test(offsetParent.tagName)?offsetChild:offsetParent;offsetParent=offsetParent.offsetParent;}while(parent&&parent.tagName&&!/^body|html$/i.test(parent.tagName)){if(!/^inline|table.*$/i.test(css(parent,"display")))add(-parent.scrollLeft,-parent.scrollTop);if(mozilla&&css(parent,"overflow")!="visible")border(parent);parent=parent.parentNode;}if((safari2&&(fixed||css(offsetChild,"position")=="absolute"))||(mozilla&&css(offsetChild,"position")!="absolute"))add(-doc.body.offsetLeft,-doc.body.offsetTop);if(fixed)add(Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft),Math.max(doc.documentElement.scrollTop,doc.body.scrollTop));}results={top:top,left:left};}function border(elem){add(jQuery.curCSS(elem,"borderLeftWidth",true),jQuery.curCSS(elem,"borderTopWidth",true));}function add(l,t){left+=parseInt(l,10)||0;top+=parseInt(t,10)||0;}return results;};jQuery.fn.extend({position:function(){var left=0,top=0,results;if(this[0]){var offsetParent=this.offsetParent(),offset=this.offset(),parentOffset=/^body|html$/i.test(offsetParent[0].tagName)?{top:0,left:0}:offsetParent.offset();offset.top-=num(this,'marginTop');offset.left-=num(this,'marginLeft');parentOffset.top+=num(offsetParent,'borderTopWidth');parentOffset.left+=num(offsetParent,'borderLeftWidth');results={top:offset.top-parentOffset.top,left:offset.left-parentOffset.left};}return results;},offsetParent:function(){var offsetParent=this[0].offsetParent;while(offsetParent&&(!/^body|html$/i.test(offsetParent.tagName)&&jQuery.css(offsetParent,'position')=='static'))offsetParent=offsetParent.offsetParent;return jQuery(offsetParent);}});jQuery.each(['Left','Top'],function(i,name){var method='scroll'+name;jQuery.fn[method]=function(val){if(!this[0])return;return val!=undefined?this.each(function(){this==window||this==document?window.scrollTo(!i?val:jQuery(window).scrollLeft(),i?val:jQuery(window).scrollTop()):this[method]=val;}):this[0]==window||this[0]==document?self[i?'pageYOffset':'pageXOffset']||jQuery.boxModel&&document.documentElement[method]||document.body[method]:this[0][method];};});jQuery.each(["Height","Width"],function(i,name){var tl=i?"Left":"Top",br=i?"Right":"Bottom";jQuery.fn["inner"+name]=function(){return this[name.toLowerCase()]()+num(this,"padding"+tl)+num(this,"padding"+br);};jQuery.fn["outer"+name]=function(margin){return this["inner"+name]()+num(this,"border"+tl+"Width")+num(this,"border"+br+"Width")+(margin?num(this,"margin"+tl)+num(this,"margin"+br):0);};});})();
  444. (function($){$.tourTabing=function(a,b){if(typeof(a)=='undefined')return $.tourTabingObject;var c=c||{};c.navId=a;c.contentId=b;$.tourTabingObject=new $.tourTabingCore(c);$.tourTabingObject.init()};$.tourTabingCore=function(d){var e=this;e.div=$('#'+d.navId);e.divDefaultHeight=0;e.navs=$('#'+d.navId+' > li');e.contents=$('#'+d.contentId+' > .tabing');e.heights=[];e.len=e.contents.length;e.init=function(){$(e.navs[0]).addClass('active');e.divDefaultHeight=$(e.div).offset().top;$(e.div).css({left:$(e.div).offset().left,width:$(e.div).outerWidth(),zIndex:99});$(e.navs).each(function(i){e.heights[i]=$(e.contents[i]).offset().top;$(this).bind('click',function(){e.active(i)});$(this).find('a').focus(function(){this.blur()})});$(window).bind('scroll',e.move).bind('resize',e.move)};e.active=function(a){e.reset();$(e.navs[a]).addClass('active');$(window).scrollTop(e.heights[a]-$(e.div).outerHeight())};e.reset=function(){$(e.navs).each(function(i){$(this).removeClass('active')})};e.move=function(){var a=$(window).scrollTop();var b=($.browser.msie&&parseInt($.browser.version)<=6)?'absolute':'fixed';if(a>e.divDefaultHeight){$(e.div).css({position:b,top:0})}else{$(e.div).css({position:'static',top:e.divDefaultHeight})}var c=[];$.each(e.heights,function(i){c.push(e.heights[i])});c.reverse();$.each(c,function(i){if(a>(c[i]-$(e.div).outerHeight()-1)){e.reset();$(e.navs[e.len-i-1]).addClass('active');return false}})}}})(jQuery);var realtimeInterval;function getRealTimeData(){$.getJSON('<?php echo $php_url; ?>?act=realtime',displayRealTimeData)}function displayRealTimeData(a){$("#time").text(a.time);$("#uptime").text(a.uptime);$("#diskFree").html(a.disk_free);$("#memTotal").html(a.mem_total);$("#memUsed").html(a.mem_used);$("#memFree").html(a.mem_free);$("#memPercent").html(a.mem_percent);$("#memCached").html(a.mem_cached);$("#memCachedPercent").html(a.mem_cached_percent);$("#memCachedBuffers").html(a.mem_cached_buffers);$("#memRealUsed").html(a.mem_real_used);$("#memRealFree").html(a.mem_real_free);$("#memRealPercent").html(a.mem_real_percent);$("#swapUsed").html(a.swap_used);$("#swapFree").html(a.swap_free);$("#swapPercent").html(a.swap_percent);$("#loadAvg").html(a.load_avg);$('#barMemPercent').width(a.mem_percent);$('#barMemCachedPercent').width(a.mem_cached_percent);$('#barMemRealPercent').width(a.mem_real_percent);$('#barSwapPercent').width(a.swap_percent);if(typeof(a.network)!='undefined'){$("#networkInput2").html(a.network['input'][2]);$("#networkInput3").html(a.network['input'][3]);$("#networkInput4").html(a.network['input'][4]);$("#networkInput5").html(a.network['input'][5]);$("#networkInput6").html(a.network['input'][6]);$("#networkInput7").html(a.network['input'][7]);$("#networkInput8").html(a.network['input'][8]);$("#networkInput9").html(a.network['input'][9]);$("#networkInput10").html(a.network['input'][10]);$("#networkOutput2").html(a.network['output'][2]);$("#networkOutput3").html(a.network['output'][3]);$("#networkOutput4").html(a.network['output'][4]);$("#networkOutput5").html(a.network['output'][5]);$("#networkOutput6").html(a.network['output'][6]);$("#networkOutput7").html(a.network['output'][7]);$("#networkOutput8").html(a.network['output'][8]);$("#networkOutput9").html(a.network['output'][9]);$("#networkOutput10").html(a.network['output'][10])}}$(document).ready(function(){$('#barMemPercent').width('<?php echo $realtime['mem_percent']; ?>');$('#barMemCachedPercent').width('<?php echo $realtime['mem_cached_percent']; ?>');$('#barMemRealPercent').width('<?php echo $realtime['mem_real_percent']; ?>');$('#barSwapPercent').width('<?php echo $realtime['swap_percent']; ?>');$('.q:input').each(function(i){$(this).click(function(){if($(this).data('fd')!=true){$(this).val('');$(this).css({color:'#c00'});$(this).data('fd',true)}})});$('#realtimeButton').toggle(function(){$(this).addClass('active').val('关闭实时数据');realtimeInterval=setInterval(getRealTimeData,1000)},function(){$(this).removeClass('active').val('开启实时数据').next().html('');clearInterval(realtimeInterval)});$('.servertest-btn > .btn').each(function(i){$(this).click(function(){$(this).prev().prev().text('...').load('<?php echo $php_url; ?>?act=server_test&i='+i)})});$('#sendmailButton').click(function(){$(this).parent().next().text('...').load('<?php echo $php_url; ?>?act=sendmail&email='+$(this).prev().val())});$('#functionCheckButton').click(function(){$(this).parent().next().text('...').load('<?php echo $php_url; ?>?act=function_check&function_name='+$(this).prev().val())});$('#configCheckButton').click(function(){$(this).parent().next().text('...').load('<?php echo $php_url; ?>?act=configuration_check&config_name='+$(this).prev().val())});$.tourTabing('tourTabingNav','tourTabingContent')});
  445. </script>
  446. </head>
  447. <body>
  448. <div class="container">
  449.   <div class="header">
  450.     <div class="top1"></div>
  451.     <div class="logo"><span><a href="http://myprober.sinaapp.com" target="_blank">MyProber 主页</a> | <a href="http://weibo.com/guojikai" target="_blank">反馈</a></span><a href="<?php echo $php_url; ?>"><b>My</b>Prober</a> ver <?php echo $version; ?></div>
  452.   </div>
  453.   <div class="main" id="tourTabingContent">
  454.     <div class="nav-box">
  455.       <ul class="nav" id="tourTabingNav">
  456.         <li><a href="javascript:;">服务器参数</a></li>
  457.         <li><a href="javascript:;">实时数据</a></li>
  458.         <li><a href="javascript:;">PHP基本参数</a></li>
  459.         <li><a href="javascript:;">组件支持</a></li>
  460.         <li><a href="javascript:;">数据库支持</a></li>
  461.         <li><a href="javascript:;">性能测试</a></li>
  462.       </ul>
  463.     </div>
  464.     <div class="table tabing">
  465.       <div class="title"><a href="#top" title="返回顶部" class="more">55</a><span>8</span>服务器参数</div>
  466.       <table class="content">
  467.         <tr>
  468.           <td>服务器名/IP</td>
  469.           <td colspan="3"><?php echo @get_current_user(); ?>@<?php echo $_SERVER['SERVER_NAME']; ?>(<?php echo $_SERVER['SERVER_ADDR']; ?>) | 你的IP:<?php echo @$_SERVER['REMOTE_ADDR']; ?></td>
  470.         </tr>
  471.         <tr>
  472.           <td>服务器标识</td>
  473.           <td colspan="3"><?php echo ($sys_info['win_n'] != '' ? $sys_info['win_n'] : @php_uname()); ?></td>
  474.         </tr>
  475.         <tr>
  476.           <td width="14%">服务器操作系统</td>
  477.           <td width="36%"><?php $os = explode(' ', php_uname()); echo $os[0]; ?> 内核版本:<?php echo ('/'==DIRECTORY_SEPARATOR ? $os[2] : $os[1]); ?></td>
  478.           <td width="14%">服务器解译引擎</td>
  479.           <td width="36%"><?php echo $_SERVER['SERVER_SOFTWARE']; ?></td>
  480.         </tr>
  481.         <tr>
  482.           <td>服务器语言</td>
  483.           <td><?php echo getenv("HTTP_ACCEPT_LANGUAGE"); ?></td>
  484.           <td>服务器端口</td>
  485.           <td><?php echo $_SERVER['SERVER_PORT']; ?></td>
  486.         </tr>
  487.         <tr>
  488.           <td>服务器主机名</td>
  489.           <td><?php echo ('/'==DIRECTORY_SEPARATOR ? $os[1] : $os[2]); ?></td>
  490.           <td>绝对路径</td>
  491.           <td><?php echo $_SERVER['DOCUMENT_ROOT'] ? str_replace('\\','/',$_SERVER['DOCUMENT_ROOT']) : str_replace('\\','/',dirname(__FILE__)); ?></td>
  492.         </tr>
  493.         <tr>
  494.           <td>管理员邮箱</td>
  495.           <td><?php echo (empty($_SERVER['SERVER_ADMIN']) ? NO : $_SERVER['SERVER_ADMIN']); ?></td>
  496.           <td>探针路径</td>
  497.           <td><?php echo str_replace('\\','/',__FILE__) ? str_replace('\\','/',__FILE__) : $_SERVER['SCRIPT_FILENAME']; ?></td>
  498.         </tr>
  499.       </table>
  500.     </div>
  501.     <div class="table tabing">
  502.       <div class="title"><a href="#top" title="返回顶部" class="more">55</a><span>8</span>服务器实时数据</div>
  503.       <table class="content">
  504.         <tr>
  505.           <td>实时开关</td>
  506.           <td colspan="3" class="realtime-btn"><input type="button" value="开启实时数据" class="btn" id="realtimeButton"  /></td>
  507.         </tr>
  508.         <tr>
  509.           <td width="14%">服务器当前时间</td>
  510.           <td id="time"><?php echo $realtime['time']; ?></td>
  511.           <td width="14%">服务器已运行时间</td>
  512.           <td id="uptime"><?php echo $realtime['uptime']; ?></td>
  513.         </tr>
  514.         <tr>
  515.           <td>网站目录空间</td>
  516.           <td id="diskTotal"><?php echo $sys_info['disk_total']; ?> G</td>
  517.           <td>网站目录可用空间</td>
  518.           <td><span class="f-red" id="diskFree"><?php echo $realtime['disk_free']; ?></span></td>
  519.         </tr>
  520.         <tr>
  521.           <td>CPU型号</td>
  522.           <td colspan="3"><?php echo '['.$sys_info['cpu']['num_text'].'] '.$sys_info['cpu']['model']; ?></td>
  523.         </tr>
  524.         <tr>
  525.           <td>内存使用状况</td>
  526.           <td colspan="3">
  527.  
  528. <?php
  529. $tmp = array('mem_total', 'mem_used', 'mem_free', 'mem_percent','mem_cached',
  530.              'mem_real_percent', 'swap_total', 'swap_used', 'swap_free', 'swap_percent'
  531.              );
  532. foreach ($tmp as $v) {
  533.   $sys_info[$v] = $sys_info[$v] ? $sys_info[$v] : 0;
  534. }
  535. ?>
  536.  
  537.           物理内存:共 <span class='f-red'><?php echo round($sys_info['mem_total']/1024, 2); ?> G</span> ,已用
  538.           <span class='f-red' id="memUsed"><?php echo $realtime['mem_used']; ?></span> ,空闲
  539.           <span class='f-red' id="memFree"><?php echo $realtime['mem_free']; ?></span> ,使用率
  540.           <span id="memPercent"><?php echo $realtime['mem_percent']; ?></span>
  541.           <div class="bar"><div id="barMemPercent" class="barli-green">&nbsp;</div></div>
  542. <?php
  543. //判断如果cache为0,不显示
  544. if($sys_info['mem_cached'] > 0) {
  545. ?>    
  546.       Cache化内存为 <span id="memCached"><?php echo $realtime['mem_cached']; ?></span> ,使用率
  547.           <span id="memCachedPercent"><?php echo $realtime['mem_cached_percent']; ?></span>  | Buffers缓冲为  
  548.           <span id="memBuffers"><?php echo $realtime['mem_buffers']; ?></span>
  549.           <div class="bar"><div id="barMemCachedPercent" class="barli-blue">&nbsp;</div></div> 真实内存使用
  550.           <span id="memRealUsed"><?php echo $realtime['mem_real_used']; ?></span> ,真实内存空闲
  551.           <span id="memRealFree"><?php echo $realtime['mem_real_free']; ?></span> ,使用率
  552.           <span id="memRealPercent"><?php echo $realtime['mem_real_percent']; ?></span>
  553.           <div class="bar-dotted"><div id="barMemRealPercent" class="barli-grey">&nbsp;</div></div>
  554. <?php
  555. }
  556. //判断如果SWAP区为0,不显示
  557. if($sys_info['swap_total'] > 0) {
  558. ?>  
  559.           SWAP区:共 <?php echo round($sys_info['swap_total']/1024, 2); ?> G ,已使用
  560.           <?php echo round($sys_info['swap_used']/1024, 2); ?> G ,空闲
  561.           <?php echo round($sys_info['swap_free']/1024, 2); ?> G ,使用率
  562.           <?php echo $realtime['swap_percent']; ?>
  563.           <div class="bar"><div id="barSwapPercent" class="barli-red">&nbsp;</div></div>
  564. <?php
  565. }  
  566. ?>      
  567.     </td>
  568.         </tr>
  569.         <tr>
  570.           <td>系统平均负载</td>
  571.           <td colspan="3"><span class="f-pink" id="loadAvg"><?php echo $realtime['load_avg']; ?></span></td>
  572.         </tr>
  573.       </table>
  574.     </div>
  575. <?php if(($network = @file("/proc/net/dev")) !== false) { ?>
  576.     <div class="table">
  577.       <div class="title"><a href="#top" title="返回顶部" class="more">55</a><span>8</span>网络使用状况</div>
  578.       <table class="content">
  579. <?php for($i=2; $i<count($network); $i++) { ?>
  580.         <tr>
  581.           <td width="14%"><?php echo $info[1][0]; ?></td>
  582.           <td width="43%">已接收: <span class="red" id="networkInput<?php echo $i; ?>"><?php echo $realtime['network']['input'][$i]; ?></span></td>
  583.           <td width="43%">已发送: <span class="red" id="networkOutput<?php echo $i; ?>"><?php echo $realtime['network']['output'][$i]; ?></span></td>
  584.         </tr>
  585. <?php } ?>
  586.       </table>
  587.     </div>
  588. <?php } ?>
  589.     <div class="table tabing">
  590.       <div class="title"><a href="#top" title="返回顶部" class="more">55</a><span>8</span>PHP基本参数</div>
  591.       <table class="content">
  592.         <tr>
  593.           <td width="32%">PHP信息(phpinfo)</td>
  594.           <td width="18%"><?php echo (false !== eregi('phpinfo', $dis_func)) ? '<span class="no">×</span>' : '<a href="'.$php_url.'?act=phpinfo" target="_blank">phpinfo()</a>'; ?></td>
  595.           <td width="32%">PHP版本(php_version)</td>
  596.           <td width="18%"><?php echo PHP_VERSION; ?></td>
  597.         </tr>
  598.         <tr>
  599.           <td width="32%">PHP运行方式</td>
  600.           <td width="18%"><?php echo php_sapi_name(); ?></td>
  601.           <td width="32%">PHP运行安全模式(safe_mode)</td>
  602.           <td width="18%"><?php echo get_cfg("safe_mode"); ?></td>
  603.         </tr>
  604.         <tr>
  605.           <td width="32%">脚本占用最大内存(memory_limit)</td>
  606.           <td width="18%"><?php echo get_cfg('memory_limit'); ?></td>
  607.           <td width="32%">POST方法提交最大限制(post_max_size)</td>
  608.           <td width="18%"><?php echo get_cfg("post_max_size"); ?></td>
  609.         </tr>
  610.         <tr>
  611.           <td width="32%">上传文件最大限制(upload_max_filesize)</td>
  612.           <td width="18%"><?php echo get_cfg("upload_max_filesize"); ?></td>
  613.           <td width="32%">浮点型数据显示的有效位数(precision)</td>
  614.           <td width="18%"><?php echo get_cfg("precision"); ?></td>
  615.         </tr>
  616.         <tr>
  617.           <td width="32%">脚本超时时间(max_execution_time)</td>
  618.           <td width="18%"><?php echo get_cfg("max_execution_time"); ?>秒</td>
  619.           <td width="32%">socket超时时间(default_socket_timeout)</td>
  620.           <td width="18%"><?php echo get_cfg("default_socket_timeout"); ?>秒</td>
  621.         </tr>
  622.         <tr>
  623.           <td width="32%">PHP页面根目录(doc_root)</td>
  624.           <td width="18%"><?php echo get_cfg("doc_root"); ?></td>
  625.           <td width="32%">用户根目录(user_dir)</td>
  626.           <td width="18%"><?php echo get_cfg("user_dir"); ?></td>
  627.         </tr>
  628.         <tr>
  629.           <td width="32%">dl()函数(enable_dl)</td>
  630.           <td width="18%"><?php echo get_cfg("enable_dl"); ?></td>
  631.           <td width="32%">指定包含文件目录(include_path)</td>
  632.           <td width="18%"><?php echo get_cfg("include_path"); ?></td>
  633.         </tr>
  634.         <tr>
  635.           <td width="32%">显示错误信息(display_errors)</td>
  636.           <td width="18%"><?php echo get_cfg("display_errors"); ?></td>
  637.           <td width="32%">自定义全局变量(register_globals)</td>
  638.           <td width="18%"><?php echo get_cfg("register_globals"); ?></td>
  639.         </tr>
  640.         <tr>
  641.           <td width="32%">数据反斜杠转义(magic_quotes_gpc)</td>
  642.           <td width="18%"><?php echo get_cfg("magic_quotes_gpc"); ?></td>
  643.           <td width="32%">短标签(short_open_tag)</td>
  644.           <td width="18%"><?php echo get_cfg("short_open_tag"); ?></td>
  645.         </tr>
  646.         <tr>
  647.           <td width="32%">ASP风格标记(asp_tags)</td>
  648.           <td width="18%"><?php echo get_cfg("asp_tags"); ?></td>
  649.           <td width="32%">忽略重复错误信息(ignore_repeated_errors)</td>
  650.           <td width="18%"><?php echo get_cfg("ignore_repeated_errors"); ?></td>
  651.         </tr>
  652.         <tr>
  653.           <td width="32%">忽略重复的错误源(ignore_repeated_source)</td>
  654.           <td width="18%"><?php echo get_cfg("ignore_repeated_source"); ?></td>
  655.           <td width="32%">报告内存泄漏(report_memleaks)</td>
  656.           <td width="18%"><?php echo get_cfg("report_memleaks"); ?></td>
  657.         </tr>
  658.         <tr>
  659.           <td width="32%">自动字符串转义(magic_quotes_gpc)</td>
  660.           <td width="18%"><?php echo get_cfg("magic_quotes_gpc"); ?></td>
  661.           <td width="32%">外部字符串自动转义(magic_quotes_runtime)</td>
  662.           <td width="18%"><?php echo get_cfg("magic_quotes_runtime"); ?></td>
  663.         </tr>
  664.         <tr>
  665.           <td width="32%">打开远程文件(allow_url_fopen)</td>
  666.           <td width="18%"><?php echo get_cfg("allow_url_fopen"); ?></td>
  667.           <td width="32%">声明argv和argc变量(register_argc_argv)</td>
  668.           <td width="18%"><?php echo get_cfg("register_argc_argv"); ?></td>
  669.         </tr>
  670.         <tr>
  671.           <td width="32%">Cookie 支持</td>
  672.           <td width="18%"><?php echo isset($_COOKIE) ? YES : NO; ?></td>
  673.           <td width="32%">拼写检查(ASpell Library)</td>
  674.           <td width="18%"><?php echo is_func("aspell_check_raw"); ?></td>
  675.         </tr>
  676.         <tr>
  677.           <td width="32%">高精度数学运算(BCMath)</td>
  678.           <td width="18%"><?php echo is_func("bcadd"); ?></td>
  679.           <td width="32%">PREL相容语法(PCRE)</td>
  680.           <td width="18%"><?php echo is_func("preg_match"); ?></td>
  681.         </tr>
  682.         <tr>
  683.           <td width="32%">PDF文档支持</td>
  684.           <td width="18%"><?php echo is_func("pdf_close"); ?></td>
  685.           <td width="32%">SNMP网络管理协议</td>
  686.           <td width="18%"><?php echo is_func("snmpget"); ?></td>
  687.         </tr>
  688.         <tr>
  689.           <td width="32%">VMailMgr邮件处理</td>
  690.           <td width="18%"><?php echo is_func("vm_adduser"); ?></td>
  691.           <td width="32%">Curl支持</td>
  692.           <td width="18%"><?php echo is_func("curl_init"); ?></td>
  693.         </tr>
  694.         <tr>
  695.           <td width="32%">SMTP支持</td>
  696.           <td width="18%"><?php echo get_cfg_var("SMTP") ? YES : NO; ?></td>
  697.           <td width="32%">SMTP地址</td>
  698.           <td width="18%"><?php echo get_cfg_var("SMTP") ? get_cfg_var("SMTP") :NO; ?></td>
  699.         </tr>
  700.         <tr>
  701.           <td width="32%">默认支持函数(enable_functions)</td>
  702.           <td width="18%"><a href="<?php echo $php_url; ?>?act=enable_functions" target="_blank">get_defined_functions()</a></td>
  703.           <td width="32%">被禁用的函数(disable_functions)</td>
  704.           <td width="18%"><?php echo (empty($dis_func) ? '无' : '<a href="'.$php_url.'?act=disable_functions" target="_blank">disable_functions</a>'); ?></td>
  705.         </tr>
  706.       </table>
  707.     </div>
  708.     <div class="table tabing">
  709.       <div class="title"><a href="#top" title="返回顶部" class="more">55</a><span>8</span>组件支持</div>
  710.       <table class="content">
  711.         <tr>
  712.           <td width="32%">FTP支持</td>
  713.           <td width="18%"><?php echo is_func("ftp_login"); ?></td>
  714.           <td width="32%">XML解析支持</td>
  715.           <td width="18%"><?php echo is_func("xml_set_object"); ?></td>
  716.         </tr>
  717.         <tr>
  718.           <td width="32%">Session支持</td>
  719.           <td width="18%"><?php echo is_func("session_start"); ?></td>
  720.           <td width="32%">Socket支持</td>
  721.           <td width="18%"><?php echo is_func("socket_accept"); ?></td>
  722.         </tr>
  723.         <tr>
  724.           <td width="32%">Calendar支持</td>
  725.           <td width="18%"><?php echo is_func('cal_days_in_month'); ?></td>
  726.           <td width="32%">允许URL打开文件</td>
  727.           <td width="18%"><?php echo get_cfg("allow_url_fopen"); ?></td>
  728.         </tr>
  729.         <tr>
  730.           <td width="32%">GD库支持</td>
  731.           <td width="18%"><?php
  732. if(function_exists(gd_info)) {
  733.   $gd_info = @gd_info();
  734.   echo $gd_info["GD Version"];
  735. } else {
  736.         echo '<font color="red">×</font>';
  737. }
  738. ?></td>
  739.           <td width="32%">压缩文件支持(Zlib)</td>
  740.           <td width="18%"><?php echo is_func("gzclose"); ?></td>
  741.         </tr>
  742.         <tr>
  743.           <td width="32%">IMAP电子邮件系统函数库</td>
  744.           <td width="18%"><?php echo is_func("imap_close"); ?></td>
  745.           <td width="32%">历法运算函数库</td>
  746.           <td width="18%"><?php echo is_func("JDToGregorian"); ?></td>
  747.         </tr>
  748.         <tr>
  749.           <td width="32%">正则表达式函数库</td>
  750.           <td width="18%"><?php echo is_func("preg_match"); ?></td>
  751.           <td width="32%">WDDX支持</td>
  752.           <td width="18%"><?php echo is_func("wddx_add_vars"); ?></td>
  753.         </tr>
  754.         <tr>
  755.           <td width="32%">Iconv编码转换</td>
  756.           <td width="18%"><?php echo is_func("iconv"); ?></td>
  757.           <td width="32%">mbstring</td>
  758.           <td width="18%"><?php echo is_func("mb_eregi"); ?></td>
  759.         </tr>
  760.         <tr>
  761.           <td width="32%">高精度数学运算</td>
  762.           <td width="18%"><?php echo is_func("bcadd"); ?></td>
  763.           <td width="32%">LDAP目录协议</td>
  764.           <td width="18%"><?php echo is_func("ldap_close"); ?></td>
  765.         </tr>
  766.         <tr>
  767.           <td width="32%">MCrypt加密处理</td>
  768.           <td width="18%"><?php echo is_func("mcrypt_cbc"); ?></td>
  769.           <td width="32%">哈稀计算</td>
  770.           <td width="18%"><?php echo is_func("mhash_count"); ?></td>
  771.         </tr>
  772.       </table>
  773.     </div>
  774.     <div class="table">
  775.       <div class="title"><a href="#top" title="返回顶部" class="more">55</a><span>8</span>第三方组件</div>
  776.       <table class="content">
  777.         <tr>
  778.           <td width="32%">Zend版本</td>
  779.           <td width="18%"><?php $zend_version = zend_version(); echo (empty($zend_version) ? NO : $zend_version); ?></td>
  780.           <td width="32%"><?php $PHP_VERSION = substr(PHP_VERSION, 2, 1); echo ($PHP_VERSION > 2 ? 'ZendGuardLoader[启用]' : 'Zend Optimizer'); ?></td>
  781.           <td width="18%"><?php
  782. if($PHP_VERSION > 2) {
  783.         echo (get_cfg_var("zend_loader.enable")) ? YES : NO;
  784. } else{
  785.         if(function_exists('zend_optimizer_version')) {
  786.                 echo zend_optimizer_version();
  787.         } else{
  788.                 echo (get_cfg_var("zend_optimizer.optimization_level") || get_cfg_var("zend_extension_manager.optimizer_ts") || get_cfg_var("zend.ze1_compatibility_mode") || get_cfg_var("zend_extension_ts")) ? YES : NO;
  789.         }
  790. }
  791. ?></td>
  792.                                         </td>
  793.         </tr>
  794.         <tr>
  795.           <td width="32%">eAccelerator</td>
  796.           <td width="18%"><?php echo (phpversion('eAccelerator') != '') ? phpversion('eAccelerator') : NO; ?></td>
  797.           <td width="32%">ioncube</td>
  798.           <td width="18%"><?php echo (extension_loaded('ionCube Loader') ? ionCube_Loader_version().'.'.(int)substr($ys, 3, 2) : NO ); ?></td>
  799.         </tr>
  800.         <tr>
  801.           <td width="32%">XCache</td>
  802.           <td width="18%"><?php echo ((phpversion('XCache')) != '' ? phpversion('XCache') : NO); ?></td>
  803.           <td width="32%">APC</td>
  804.           <td width="18%"><?php echo ((phpversion('APC')) != '' ? phpversion('APC') : NO); ?></td>
  805.         </tr>
  806.       </table>
  807.     </div>
  808.     <div class="table">
  809.       <div class="title"><a href="#top" title="返回顶部" class="more">55</a><span>8</span>缓存组件</div>
  810.       <table class="content">
  811.         <tr>
  812.           <td width="32%">Memcache</td>
  813.           <td width="18%"><?php echo ((phpversion('Memcache')) != '' ? phpversion('Memcache') : NO); ?></td>
  814.           <td width="32%">Redis</td>
  815.           <td width="18%"><?php echo ((phpversion('Redis')) != '' ? phpversion('Redis') : NO); ?></td>
  816.         </tr>
  817.       </table>
  818.     </div>
  819.     <div class="table tabing">
  820.       <div class="title"><a href="#top" title="返回顶部" class="more">55</a><span>8</span>数据库支持</div>
  821.       <table class="content">
  822.         <tr>
  823.           <td width="32%">MySQL</td>
  824.           <td width="18%"><?php
  825. echo is_func("mysql_close");
  826. if(function_exists("mysql_get_server_info")) {
  827.   $s = @mysql_get_server_info(); //@mysql_get_client_info();
  828.   echo ($s ? ' 版本:'.$s : '');
  829. }
  830. ?></td>
  831.           <td width="32%">ODBC</td>
  832.           <td width="18%"><?php echo is_func("odbc_close"); ?></td>
  833.         </tr>
  834.         <tr>
  835.           <td width="32%">Oracle</td>
  836.           <td width="18%"><?php echo is_func("ora_close"); ?></td>
  837.           <td width="32%">SQL Server</td>
  838.           <td width="18%"><?php echo is_func("mssql_close"); ?></td>
  839.         </tr>
  840.         <tr>
  841.           <td width="32%">dBASE</td>
  842.           <td width="18%"><?php echo is_func("dbase_close"); ?></td>
  843.           <td width="32%">mSQL</td>
  844.           <td width="18%"><?php echo is_func("msql_close"); ?></td>
  845.         </tr>
  846.         <tr>
  847.           <td width="32%">SQLite</td>
  848.           <td width="18%"><?php
  849. echo is_func("sqlite_close");
  850. if(function_exists('sqlite_close')) {
  851.         echo " 版本:".@sqlite_libversion();
  852. }
  853. ?></td>
  854.           <td width="32%">Hyperwave</td>
  855.           <td width="18%"><?php echo is_func("hw_close"); ?></td>
  856.         </tr>
  857.         <tr>
  858.           <td width="32%">Postgre SQL</td>
  859.           <td width="18%"><?php echo is_func("pg_close"); ?></td>
  860.           <td width="32%">Informix</td>
  861.           <td width="18%"><?php echo is_func("ifx_close"); ?></td>
  862.         </tr>
  863.         <tr>
  864.           <td width="32%">DBA</td>
  865.           <td width="18%"><?php echo is_func("dba_close"); ?></td>
  866.           <td width="32%">DBM</td>
  867.           <td width="18%"><?php echo is_func("dbmclose"); ?></td>
  868.         </tr>
  869.         <tr>
  870.           <td width="32%">MongoDB</td>
  871.           <td width="18%"><?php echo ((phpversion('Mongo')) != '' ? phpversion('Mongo') : NO); ?></td>
  872.           <td width="32%">&nbsp;</td>
  873.           <td width="18%">&nbsp;</td>
  874.         </tr>
  875.       </table>
  876.     </div>
  877.     <div class="table tabing">
  878.       <div class="title"><a href="#top" title="返回顶部" class="more">55</a><span>8</span>服务器性能测试</div>
  879.       <table class="content">
  880.         <tr>
  881.           <td width="19%" class="t-c">参照对象</td>
  882.           <td width="17%" class="t-c">整数运算能力测试<br />(1+1运算300万次)</td>
  883.           <td width="17%" class="t-c">浮点运算能力测试<br />(圆周率开平方300万次)</td>
  884.           <td width="17%" class="t-c">数据I/O能力测试<br />(读取10K文件1万次)</td>
  885.           <td>CPU信息</a></td>
  886.         </tr>
  887.         <tr>
  888.           <td>作者的笔记本</td>
  889.           <td class="t-c">0.335秒</td>
  890.           <td class="t-c">0.619秒</td>
  891.           <td class="t-c">0.064秒</td>
  892.           <td>2 x Core i5-2410M @ 2.23GHz</td>
  893.         </tr>
  894.         <tr>
  895.           <td>作者的服务器</td>
  896.           <td class="t-c">0.203秒</td>
  897.           <td class="t-c">0.532秒</td>
  898.           <td class="t-c">0.047秒</td>
  899.           <td>2 x Core E5400 @ 2.70GHz</td>
  900.         </tr>
  901.         <tr>
  902.           <td>新浪APP引擎</td>
  903.           <td class="t-c">0.237秒</td>
  904.           <td class="t-c">0.564秒</td>
  905.           <td class="t-c">0.029秒</td>
  906.           <td>未知</td>
  907.         </tr>
  908.         <tr>
  909.           <td>当前机器</td>
  910.           <td class="servertest-btn t-c"><span class="f-red">未测试</span><br /><input type="button" value="测试" class="btn" /></td>
  911.           <td class="servertest-btn t-c"><span class="f-red">未测试</span><br /><input type="button" value="测试" class="btn" /></td>
  912.           <td class="servertest-btn t-c"><span class="f-red">未测试</span><br /><input type="button" value="测试" class="btn" /></td>
  913.           <td><?php echo $sys_info['cpu']['model']; ?></td>
  914.         </tr>
  915.       </table>
  916.     </div>
  917.                 <div class="table">
  918.       <div class="title"><a href="#top" title="返回顶部" class="more">55</a><span>8</span>自定义测试</div>
  919.       <table class="content">
  920.         <tr>
  921.                                         <form action="<?php echo $php_url; ?>#bottom" method="post">
  922.                                         <input type="hidden" name="act" value="mysql_connect" />
  923.           <td width="19%">MySQL连接测试</td>
  924.           <td class="form"><input type="text" name="host" value="localhost" class="q" style="width: 100px;" /> <input type="text" name="port" value="3306" class="q" style="width: 40px;" /> <input type="text" name="user" value="用户名" class="q" style="width: 70px;" /> <input type="text" name="password" value="密码" class="q" style="width: 70px;" /> <input type="submit" value="测试" class="btn" /></td>
  925.           <td width="22%"><?php echo (empty($mysql_connect_result) ? '&nbsp;' : $mysql_connect_result); ?></td>
  926.                                         </form>
  927.         </tr>
  928.         <tr>
  929.           <td width="19%">邮件发送测试</td>
  930.           <td class="form"><input type="text" value="输入邮件地址" class="q" /> <input type="button" value="测试" class="btn" id="sendmailButton" /></td>
  931.           <td width="22%">&nbsp;</td>
  932.         </tr>
  933.         <tr>
  934.           <td width="19%">函数支持检测</td>
  935.           <td class="form"><input type="text" value="输入函数名称" class="q" /> <input type="button" value="测试" class="btn" id="functionCheckButton" /></td>
  936.           <td width="22%">&nbsp;</td>
  937.         </tr>
  938.         <tr>
  939.           <td width="19%">PHP配置参数检测</td>
  940.           <td class="form"><input type="text" value="输入参数名称" class="q" /> <input type="button" value="测试" class="btn" id="configCheckButton" /></td>
  941.           <td width="22%">&nbsp;</td>
  942.         </tr>
  943.       </table>
  944.     </div>
  945.     <div class="table">
  946.       <div class="title"><a href="#top" title="返回顶部" class="more">55</a><span>8</span>下载探针</div>
  947.       <table class="content">
  948.         <tr>
  949.           <td width="19%">官方下载</td>
  950.           <td class="form"><a href="http://myprober.sinaapp.com/MyProber.zip" target="_blank">点此下载</a></td>
  951.         </tr>
  952.       </table>
  953.     </div>
  954.   </div>
  955.   <div class="footer">
  956.     <div class="copy">&copy;2010 <span>Powered by</span> <a href="http://weibo.com/guojikai" target="_blank">Guojikai</a> | Processed in <?php echo sprintf('%0.4f', get_microtime_float() - $time_start); ?> seconds. <?php echo memory_usage(); ?> memory usage.</div>
  957.     <div class="link">
  958.       Valid <a href="http://validator.w3.org/check?uri=referer">XHTML</a>&nbsp;&nbsp;Valid <a href="http://jigsaw.w3.org/css-validator/validator?uri=<?php echo $php_url; ?>">CSS</a>
  959.     </div>
  960.   </div>
  961. </div>
  962. </body>
  963. </html>
downloadMyProber.min.php Source code - Download MyProber PHP 0.26 a probe Source code
Related Source Codes/Software:
Food science and technology chain edition v1.1 online reservation system - Treat chain version of the main functions of the o... 2016-10-23
Emlog for SAE v4.2.1 - Emlog for SAE is suitable for SAE emlog used modif... 2016-10-23
Easy website system v2.0 - Business easy built station system (Sunnyi Website... 2016-10-23
Good business mall v2.0 open source edition - Good business, open source shopping mall, which is... 2016-10-23
Desert arashi v0.1.2 file operations procedures - Desert arashi file operations procedures is a simp... 2016-10-23
Project management software KisProject v1.0.3 - Kis (Keep it simple) is a free WEB-based team coll... 2016-10-23
HP fetion automatic daily weather forecast v1.0 - HP fetion daily automated weather main uses 1. ac... 2016-10-23
Valley dad imitate homepage search - Modified more concise and convenient, but there is... 2016-10-23
hpMyAdmin v3.4.11 For Linux - HpMyAdmin is a PHP based, architecture in Web - Ba... 2016-10-23
V1.4 jmapcms website development system - 1. Modify the CHKJS file loading animation has alw... 2016-10-23
CRYENGINE - CRYENGINE is a powerful real-time game development... 2017-06-11
postal - 2017-06-11
reactide - Reactide is the first dedicated IDE for React web ... 2017-06-11
rkt - rkt is a pod-native container engine for Linux. It... 2017-06-11
uWebSockets - Tiny WebSockets https://for... 2017-06-11
realworld - TodoMVC for the RealWorld - Exemplary fullstack Me... 2017-06-11
goreplay - GoReplay is an open-source tool for capturing and ... 2017-06-10
pyenv - Simple Python version management 2017-06-10
redux-saga - An alternative side effect model for Redux apps ... 2017-06-10
angular-starter - 2017-06-10

 Back to top