* 一、本程序基于div+css教程 新型架构php探针,免费开源的自由软件,功能强大,结构清晰,使用方便。
1.支持windows,linux,unix,freebsd,sun solar系统
2.支持ie6,ie7,firefox,google chrome等浏览器。
二、主要用途及适用对象:
1.熟悉php编程的业余爱好者及专业开发人员。
2.机房管理人员配置linux(windows)+php+mysql教程+zend系统环境,检测系统是否配置成功。
3.对于购买虚拟主机的用户,用于测试服务器性能。
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
*/
//////////////////以下两变量可以修改配制
//如果这个探针你是用来验示的,你可以在下面变量中输入相关信息(会显示在页面底部
header("content-type: text/html; charset=utf-8");
error_reporting(e_error | e_warning | e_parse);
ob_start();
$valint = (false == empty($_post['pint']))?$_post['pint']:"未测试";
$valfloat = (false == empty($_post['pfloat']))?$_post['pfloat']:"未测试";
$valio = (false == empty($_post['pio']))?$_post['pio']:"未测试";
$mysqlreshow = "none";
$mailreshow = "none";
$funreshow = "none";
$opreshow = "none";
$sysreshow = "none";
//============ 定义常量 用于替换模板输出变量 =======================
//define("yes", "<span class='resyes'>yes</span>");
//define("no", "<span class='resno'>no</span>");
define("yes", "<span class='resyes'>√</span>");
define("no", "<span class='resno'>×</span>");
//=================================================================
define("icon", "<span class='icon'>2</span> ");
$phps教程elf = $_server[php_self] ? $_server[php_self] : $_server[script_name];
define("phpself", preg_replace("/(.{0,}?/+)/", "", $phpself));
if ($_get['act'] == "phpinfo")
{
phpinfo();
exit();
}
elseif($_post['act'] == "整型测试")
{
$valint = test_int();
}
elseif($_post['act'] == "浮点测试")
{
$valfloat = test_float();
}
elseif($_post['act'] == "io测试")
{
$valio = test_io();
}
elseif($_post['act'] == "connect")
{
$mysqlreshow = "show";
$mysqlre = "mysql连接测试结果:";
$mysqlre .= (false !== @mysql_connect($_post['mysqlhost'], $_post['mysqluser'], $_post['mysqlpassword']))?"mysql服务器连接正常, ":"mysql服务器连接失败, ";
$mysqlre .= "数据库教程 <b>".$_post['mysqldb']."</b> ";
$mysqlre .= (false != @mysql_select_db($_post['mysqldb']))?"连接正常":"连接失败";
}
elseif($_post['act'] == "sendmail")
{
$mailreshow = "show";
$mailre = "mail邮件发送测试结果:发送";
$mailre .= (false !== @mail($_post["mailreceiver"], "uenuprobe mail server test.", "this email is sent by uenuprobe. copyright uenucom http://www.uenu.com"))?"完成":"失败";
}
elseif($_post['act'] == "function_check")
{
$funreshow = "show";
$funre = "函数 <b>".$_post['funname']."</b> 支持状况检测结果:".isfun($_post['funname']);
}
elseif($_post['act'] == "configuration_check")
{
$opreshow = "show";
$opre = "配置参数 <b>".$_post['opname']."</b> 检测结果:".getcon($_post['opname']);
}
//========================================================================
//========================================================================
switch (php_os)
{
case "linux":
$sysreshow = (false != ($sysinfo = sys_linux()))?"show":"none";
break;
case "freebsd":
$sysreshow = (false != ($sysinfo = sys_freebsd()))?"show":"none";
break;
case "windows":
//$sysreshow = (false != ($sysinfo = sys_windows()))?"show":"none";
$sysinfo['uptime'] ="对不起windows系统不支持";
break;
default:
break;
}
//========================================================================
?>
<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<link type="text/css" rel="stylesheet" href="common/control.css">
<script type="text/网页特效" language="javascript" src="common/admin.otable.js"></script>
<script type="text/javascript" language="javascript" src="common/include.func.js"></script>
<title>服务器信息</title>
<style type="text/css">
.resyes {
font-size: 12px;
color: #090;
font-weight:bold;
font-family: verdana;
}
.resno {
font-size: 12px;
color: #f00;
font-weight:bold;
font-family: verdana;
}
.check00{
color: #630;
}
</style>
<script type="text/javascript">
window.onload=function(){
var otable=document.getelementbyid("otable");
for(var i=0;i<otable.rows.length;i++){
if(i%2==0) //偶数行时
otable.rows[i].classname="altrow";
}
var otable2=document.getelementbyid("otable2");
for(var i=0;i<otable2.rows.length;i++){
if(i%2==0) //偶数行时
otable2.rows[i].classname="altrow";
}
var otable3=document.getelementbyid("otable3");
for(var i=0;i<otable3.rows.length;i++){
if(i%2==0) //偶数行时
otable3.rows[i].classname="altrow";
}
var otable4=document.getelementbyid("otable4");
for(var i=0;i<otable4.rows.length;i++){
if(i%2==0) //偶数行时
otable4.rows[i].classname="altrow";
}
var otable5=document.getelementbyid("otable5");
for(var i=0;i<otable5.rows.length;i++){
if(i%2==0) //偶数行时
otable5.rows[i].classname="altrow";
}
}
</script>
</head>
<body class="contentbody">
<div class="maindiv">
<span class="ctitle">服务器信息</span>
<ul class="cmenu">
<li><a href="server_info.php?action=">服务器特征</a></li>
<li><a href="server_info.php?action=phpinfo">php基本特征</a></li>
<li><a href="server_info.php?action=otherinfo">php组件支持状况</a></li>
<li><a href="server_info.php?action=dbinfo">数据库支持状况</a></li>
<li><a href="server_info.php?action=testinfo">性能检测</a></li>
<li><a href="server_moreinfo.php">服务器详细信息</a></li>
</ul>
<div class="concontent">
<?php
switch($_get['action']){
case '':
?>
<table cellpadding="0" cellspacing="0" border="0" width="100%" class="ctable" id="otable" align="center">
<tr>
<th colspan="2" align="center">服务器特征</th>
</tr>
<tr>
<td width="150">服务器时间</td>
<td><?php echo gmdate("y年m月d日 h:i:s",time());?> (格林威治标准时间) <?php echo gmdate("y年n月j日 h:i:s",time()+8*3600)?> (北京时间)</td>
</tr>
<tr>
<td>服务器域名</td>
<td><?php echo("<a href="http://$_server[server_name]" title=访问此域名 target=_blank>$_server[server_name]</a>"); ?></td>
</tr>
<tr>
<td>服务器ip地址</td>
<td><?php $host_ip=gethostbyname($_server["server_name"]); echo($host_ip);?></td>
</tr>
<tr>
<td>服务器操作系统</td>
<td><?php $os = explode(" ", php_uname()); echo $os[0]; echo " ";
if ($os[0] =="windows") {echo "主机名称:".$os[2];} else {echo "内核版本:".$os[2];}?></td>
</tr>
<tr>
<td>服务器运行时间</td>
<td><?php if ($sysinfo['uptime']!=""){ echo $sysinfo['uptime'];} else echo "对不起windows系统不支持"; ?></td>
</tr>
<tr>
<td>服务器操作系统文字编码</td>
<td><?php echo($_server["http_accept_language"]); ?></td>
</tr>
<tr>
<td>服务器解译引擎</td>
<td><?php echo($_server["server_software"]); ?></td>
</tr>
<tr>
<td>web服务端口</td>
<td><?php echo($_server["server_port"]); ?></td>
</tr>
<tr>
<td>服务器管理员</td>
<td><a href="mailto:<?php echo $_server['server_admin'];?>"><?php echo $_server['server_admin'];?></a></td>
</tr>
<tr>
<td>本文件路径</td>
<td><?php echo($_server["script_filename"]);?></td>
</tr>
<tr>
<td>服务端剩余空间</td>
<td><?php echo intval(diskfreespace(".") / (1024 * 1024)).'mb';?></td>
</tr>
<tr>
<td>系统当前用户名</td>
<td><?php echo @get_current_user();?></td>
</tr>
</table>
<br />
<!-- 仅在windows 环境中输出-->
<?php if(("show" !==$sysreshow) & ("0"!= $_env["number_of_processors"])& (""!= $_env["number_of_processors"])){?>
<div class="info3">服务器处理器</div><div class="info4">cpu个数:<?php echo $_env["number_of_processors"]?> <?php echo " ".$_env["processor_identifier"]; echo " 运行级别:".$_env["processor_level"]; echo " 版本:".$_env["processor_revision"];?></div>
<?php }?>
<!-- 仅在windows 环境中输出结束-->
<!-- linux or unix 参数输出-->
<?php if(("show"==$sysreshow)&("0" != $sysinfo['cpu']['num'])&("" != $sysinfo['cpu']['num'])){?>
<div class="info3">服务器处理器</div><div class="info4">cpu个数:<?php echo $sysinfo['cpu']['num']?> <?php echo $sysinfo['cpu']['detail']?></div>
<?php }?>
<?php if("show"==$sysreshow){?>
<div class="info3">内存使用状况</div><div class="info4">
<?php echo $sysinfo['memtotal']?>m, 已使用
<?php echo $sysinfo['memused']?>m, 空闲
<?php echo $sysinfo['memfree']?>m, 使用率
<?php echo $sysinfo['mempercent']?>%</div>
<div class="info3">swap区</div><div class="info4">
共<?php echo $sysinfo['swaptotal']?>m, 已使用
<?php echo $sysinfo['swapused']?>m, 空闲
<?php echo $sysinfo['swapfree']?>m, 使用率
<?php echo $sysinfo['swappercent']?>%</div>
<div class="info3">系统平均负载</div><div class="info4"><?php echo $sysinfo['loadavg']?></div>
<?php }?>
<!-- linux or unix 参数输出结束-->
<?php
break;
case 'phpinfo':
?>
<table cellpadding="0" cellspacing="0" border="0" width="100%" class="ctable" id="otable" align="center">
<tr>
<th colspan="4" align="center">php基本特征</th>
</tr>
<tr>
<td width="30%">php版本</td>
<td width="20%"><?php echo php_version;?></td>
<td width="30%">php运行方式</td>
<td><?php /**strtoupper(php_sapi_name());**/ echo ucwords(php_sapi_name());?></td>
</tr>
<tr>
<td>支持zend编译运行 (<?php if($zend="yes") {echo "版本:";echo zend_version();}?>)</td>
<td><?php echo $zend=(get_cfg_var("zend_optimizer.optimization_level")||get_cfg_var("zend_extension_manager.optimizer_ts")||get_cfg_var("zend_extension_ts")) ?yes:no?></td>
<td>运行于安全模式</td>
<td><?php if(get_cfg_var("safemode")){echo("是");}else echo("否"); ?></td>
</tr>
<tr>
<td>自动定义全局变量 register_globals</td>
<td><?php echo @get_cfg_var("register_globals")?'on' : 'off';?></td>
<td>允许使用url打开文件allow_url_fopen</td>
<td><?php echo get_cfg_var("allow_url_fopen")=="1"?yes:no?></td>
</tr>
<tr>
<td>允许动态加载链接库enable_dl</td>
<td><?php echo get_cfg_var("enable_dl")=="1"?yes:no?></td>
<td>显示错误信息 display_errors</td>
<td><?php echo get_cfg_var("display_errors")=="1"?yes:no?></td>
</tr>
<tr>
<td>短标记<? ?>支持</td>
<td><?php echo @get_cfg_var("short_open_tag")?yes:no;?></td>
<td>标记<% %>支持</td>
<td><?php echo @get_cfg_var("asp教程_tags")?yes:no;?></td>
</tr>
<tr>
<td>cookie支持</td>
<td><?php echo isset($http_cookie_vars)?yes:no;?></td>
<td>session支持</td>
<td><?php echo function_exists(session_start)?yes:no;?></td>
</tr>
<tr>
<td>浮点运算有效数字显示位数</td>
<td><?php echo @get_cfg_var("precision");?></td>
<td>强制y2k兼容</td>
<td><?php echo @get_cfg_var("y2k_compliance")?yes:no;?></td>
</tr>
<tr>
<td>被禁用的函数disable_functions</td>
<td><?php $disused = @get_cfg_var("disable_functions")?"1":"0";
if($disused =="1")
{echo '<a href="#" title="
'.@get_cfg_var("disable_functions").'
">'."more".'</a>';}
else {echo "none";}?></td>
<td>程序最长运行时间max_execution_time</td>
<td><?php echo(get_cfg_var("max_execution_time")."秒");?></td>
</tr>
<tr>
<td>程序最多允许使用内存量 memory_limit</td>
<td><?php echo @get_cfg_var("memory_limit");?></td>
<td>post最大字节数 post_max_size</td>
<td><?php echo @get_cfg_var("post_max_size");?></td>
</tr>
<tr>
<td>允许最大上传文件 upload_max_filesize</td>
<td><?php echo @get_cfg_var("file_uploads")?@get_cfg_var("upload_max_filesize") : $error;?></td>
<td>php信息 phpinfo</td>
<td><?php echo (false!==eregi("phpinfo",$disfuns))?no:"<a href='$phpself?act=phpinfo' target='_blank' class='static'>phpinfo</a>"?></td>
</tr>
<tr>
<td>html错误显示</td>
<td><?php echo @get_cfg_var("html_errors")?yes:no;?></td>
<td>调试器地址/端口</td>
<td><?php echo $debugerhost=@get_cfg_var("debugger.host")?yes:no;if ($debugerhost =="yes") {echo @get_cfg_var("debugger.port")?yes:no;}?></td>
</tr>
<tr>
<td>smtp支持</td>
<td><?php echo @get_cfg_var("smtp")?yes:no;?></td>
<td>smtp地址</td>
<td><?php echo @get_cfg_var("smtp");?></td>
</tr>
</table>
<?php
break;
case 'otherinfo':
?>
<table cellpadding="0" cellspacing="0" border="0" width="100%" class="ctable" id="otable" align="center">
<tr>
<th colspan="4" align="center">php组件支持状况</th>
</tr>
<tr>
<td width="30%">拼写检查 aspell library</td>
<td width="20%"><?php echo function_exists(aspell_new)?yes:no;?></td>
<td width="30%">高精度数学运算 bcmath</td>
<td><?php echo function_exists(bcadd)?yes:no;?></td>
</tr>
<tr>
<td>历法运算 calendar</td>
<td><?php echo function_exists(jdtofrench)?yes:no;?></td>
<td>图形处理 gd library</td>
<td><?php echo function_exists(imageline)?yes:no;?></td>
</tr>
<tr>
<td>类/对象支持</td>
<td><?php echo function_exists(class_exists)?yes:no;?></td>
<td>字串类型检测支持</td>
<td><?php echo function_exists(ctype_upper)?yes:no;?></td>
</tr>
<tr>
<td>iconv编码支持</td>
<td><?php echo function_exists(iconv)?yes:no;?></td>
<td>mcrypt加密处理支持</td>
<td><?php echo function_exists(mcrypt_cbc)?yes:no;?></td>
</tr>
<tr>
<td>哈稀计算 mhash</td>
<td><?php echo function_exists(mhash)?yes:no;?></td>
<td>openssl支持</td>
<td><?php echo function_exists(openssl_open)?yes:no;?></td>
</tr>
<tr>
<td>prel相容语法 pcre</td>
<td><?php echo function_exists(preg_match)?yes:no;?></td>
<td>正则扩展(兼容perl)支持</td>
<td><?php echo function_exists(preg_match)?yes:no;?></td>
</tr>
<tr>
<td>socket支持</td>
<td><?php echo function_exists(fsockopen)?yes:no;?></td>
<td>流媒体支持</td>
<td><?php echo function_exists(stream_context_create)?yes:no;?></td>
</tr>
<tr>
<td>tokenizer支持</td>
<td><?php echo function_exists(token_name)?yes:no;?></td>
<td>url支持</td>
<td><?php echo function_exists(parse_url)?yes:no;?></td>
</tr>
<tr>
<td>wddx支持(web distributed data exchange)</td>
<td><?php echo function_exists(wddx_add_vars)?yes:no;?></td>
<td>压缩文件支持(zlib)</td>
<td><?php echo function_exists(gzclose)?yes:no;?></td>
</tr>
<tr>
<td>xml解析</td>
<td><?php echo function_exists(xml_set_object)?yes:no;?></td>
<td>ftp</td>
<td><?php echo function_exists(ftp_login)?yes:no;?></td>
</tr>
<tr>
<td>目录存取协议(ldap)支持</td>
<td><?php echo function_exists(ldap_close)?yes:no;?></td>
<td>yellow page系统支持</td>
<td><?php echo function_exists(yp_match)?yes:no;?></td>
</tr>
<tr>
<td>php和java综合支持</td>
<td><?php echo function_exists(java_last_exception_get)?yes:no;?></td>
<td>imap电子邮件系统支持</td>
<td><?php echo function_exists(imap_close)?yes:no;?></td>
</tr>
<tr>
<td>snmp网络管理协议支持</td>
<td><?php echo function_exists(snmpget)?yes:no;?></td>
<td>vmailmgr邮件处理支持</td>
<td><?php echo function_exists(vm_adduser)?yes:no;?></td>
</tr>
<tr>
<td>pdf文档支持</td>
<td><?php echo function_exists(pdf_close)?yes:no;?></td>
<td>fdf表单资料格式支持</td>
<td><?php echo function_exists(fdf_close)?yes:no;?></td>
</tr>
</table>
<?php
break;
case 'dbinfo':
?>
<table cellpadding="0" cellspacing="0" border="0" width="100%" class="ctable" id="otable" align="center">
<tr>
<th colspan="4" align="center">数据库支持状况</th>
</tr>
<tr>
<td width="30%">mysql数据库支持</td>
<td width="20%"><?php echo function_exists(mysql_close)?yes:no;?></td>
<td width="30%">mysql数据库持续连接</td>
<td><?php echo @get_cfg_var("mysql.allow_persistent")?yes:no;?></td>
</tr>
<tr>
<td>mysql最大连接数</td>
<td><?php echo @get_cfg_var("mysql.max_links")==-1 ? "不限" : @get_cfg_var("mysql.max_links");?></td>
<td>odbc数据库连接</td>
<td><?php echo function_exists(odbc_close)?yes:no;?></td>
</tr>
<tr>
<td>sql server数据库支持</td>
<td><?php echo function_exists(mssql_close)?yes:no;?></td>
<td>msql数据库支持</td>
<td><?php echo function_exists(msql_close)?yes:no;?></td>
</tr>
<tr>
<td>postgre sql数据库支持</td>
<td><?php echo function_exists(pg_close)?yes:no;?></td>
<td>oracle数据库支持</td>
<td><?php echo function_exists(ora_close)?yes:no;?></td>
</tr>
<tr>
<td>oracle 8 数据库支持</td>
<td><?php echo function_exists(ocilogoff)?yes:no;?></td>
<td>dbase数据库支持</td>
<td><?php echo function_exists(dbase_close)?yes:no;?></td>
</tr>
<tr>
<td>sybase数据库支持</td>
<td><?php echo function_exists(sybase_close)?yes:no;?></td>
<td>dba数据库支持</td>
<td><?php echo function_exists(dba_close)?yes:no;?></td>
</tr>
<tr>
<td>dbm数据库支持</td>
<td><?php echo function_exists(dbmclose)?yes:no;?></td>
<td>dbx数据库支持</td>
<td><?php echo function_exists(dbx_close)?yes:no;?></td>
</tr>
<tr>
<td>db++数据库支持</td>
<td><?php echo function_exists(dbplus_close)?yes:no;?></td>
<td>frontbase数据库支持</td>
<td><?php echo function_exists(fbsql_close)?yes:no;?></td>
</tr>
<tr>
<td>filepro数据库支持</td>
<td><?php echo function_exists(filepro)?yes:no;?></td>
<td>informix数据库支持</td>
<td><?php echo function_exists(ifx_close)?yes:no;?></td>
</tr>
<tr>
<td>lotus notes数据库支持</td>
<td><?php echo function_exists(notes_version)?yes:no;?></td>
<td>interbase数据库支持</td>
<td><?php echo function_exists(ibase_close)?yes:no;?></td>
</tr>
<tr>
<td>ingres数据库支持</td>
<td><?php echo function_exists(ingres_close)?yes:no;?></td>
<td>hyperwave数据库支持</td>
<td><?php echo function_exists(hw_close)?yes:no;?></td>
</tr>
<tr>
<td>ovrimos sql数据库连接支持</td>
<td><?php echo function_exists(ovrimos_close)?yes:no;?></td>
<td>sesam数据库连接支持</td>
<td><?php echo function_exists(sesam_disconnect)?yes:no;?></td>
</tr>
<tr>
<td>sqlite数据库连接支持</td>
<td><?php echo function_exists(sqlite_close)?yes:no;?></td>
<td>adabas d数据库连接支持</td>
<td><?php echo function_exists(ada_close)?yes:no;?></td>
</tr>
</table>
<?php
break;
case 'testinfo':
?>
<form action="<?php echo phpself."?action=testinfo&icon=$icon&#testinfo1"?>" method="post">
<!--服务器性能检测-->
<div id="testinfo1">
<table cellpadding="0" cellspacing="0" border="0" width="100%" class="ctable" id="otable" align="center">
<tr><th colspan="4">服务器性能检测</th></tr>
<tr align="center">
<td width="25%">参照对象</td>
<td width="25%">整数运算能力检测(1+1运算300万次)</td>
<td width="25%">浮点运算能力检测(开平方300万次)</td>
<td width="25%">数据i/o能力检测(读取10k文件1万次)</td>
</tr>
<tr align="center">
<td>红色主机单线型(双核)</td>
<td>0.33 秒</td>
<td>0.95 秒</td>
<td>0.03 秒</td>
</tr>
<tr align="center">
<td>红色主机双线型(四核)</td>
<td>0.25 秒</td>
<td>0.79 秒</td>
<td>0.03 秒</td>
</tr>
<tr align="center">
<td>xeon(tm) 2.80*2+4g+centos 5.2</td>
<td>0.068秒</td>
<td>0.086秒</td>
<td>小于0.100秒</td>
</tr>
<tr align="center">
<td>xeon(tm) 2.80ghz+2g+freebsd 4.0</td>
<td>0.501秒</td>
<td>0.694秒</td>
<td>小于0.100秒</td>
</tr>
<tr align="center" height="50">
<td>本台服务器</td>
<td><span style="color:#390"><?php echo $valint;?></span> <input type="submit" value="整型测试" name="act" class="button" /></td>
<td><span style="color:#06c"><?php echo $valfloat;?></span> <input type="submit" value="浮点测试" name="act" class="button" /></td>
<td><span style="color:#f60"><?php echo $valio;?></span> <input type="submit" value="io测试" name="act" class="button" /></td>
</tr>
</table>
</div>
<input type="hidden" name="pint" value="<?php echo $valint;?>" />
<input type="hidden" name="pfloat" value="<?php echo $valfloat;?>" />
<input type="hidden" name="pio" value="<?php echo $valio;?>" />
</form>
<?php
$ismysql = (false !== function_exists("mysql_query"))?"":" disabled";
$ismail = (false !== function_exists("mail"))?"":" disabled";
?>
<br />
<form action="<?php echo phpself."?action=testinfo&icon=$icon&#testinfo2"?>" method="post">
<div id="testinfo2">
<!--mysql数据库连接检测--><br /><br />
<table cellpadding="0" cellspacing="0" border="0" width="80%" class="ctable" id="otable2" align="center">
<tr><th colspan="2">mysql数据库连接检测</th></tr>
<tr>
<td width="30%" align="right">mysql服务器:</td>
<td><input name="mysqlhost" type="text" id="mysqlhost" value="localhost" size="80" class="text2" /></td>
</tr>
<tr>
<td align="right">mysql用户名:</td>
<td><input name="mysqluser" type="text" id="mysqluser" value="root" size="80" class="text2" /></td>
</tr>
<tr>
<td align="right">mysql用户密码:</td>
<td><input type="text" name="mysqlpassword" <?php echo $ismysql?> size="80" class="text2" /></td>
</tr>
<tr>
<td align="right">mysql数据库名称:</td>
<td><input type="text" name="mysqldb" size="80" class="text2" /></td>
</tr>
<tr>
<td align="right" height="30"><input type="submit" class="button" value="connect" <?php echo $ismysql?> name="act" /></td>
<td><div class="check00"><?php if("show"==$mysqlreshow){echo $mysqlre;}?> </div></td>
</tr>
</table>
</div>
</form>
<br /><br />
<form action="<?php echo phpself."?action=testinfo&icon=$icon&#testinfo5"?>" method="post">
<div id="testinfo5">
<!--邮件发送检测-->
<table cellpadding="0" cellspacing="0" border="0" width="80%" class="ctable" id="otable3" align="center">
<tr><th colspan="2">php配置参数状况</th></tr>
<tr>
<td width="30%" align="right">请输入您要检测的参数名称:</td>
<td><input type="text" name="opname" size="80" class="text2" /></td>
</tr>
<tr>
<td align="right" height="30"><input type="submit" class="button" value="configuration_check" name="act" /></td>
<td><div class="check00"><?php if("show"==$opreshow){echo $opre;}?></div></td>
</tr>
</table>
</div>
</form>
<br /><br />
<form action="<?php echo phpself."?action=testinfo&icon=$icon&#testinfo3"?>" method="post">
<div id="testinfo3">
<!--函数检测-->
<table cellpadding="0" cellspacing="0" border="0" width="80%" class="ctable" id="otable4" align="center">
<tr><th colspan="2">函数检测</th></tr>
<tr>
<td width="30%" align="right">请输入您要检测的函数名称:</td>
<td><input type="text" name="funname" size="80" class="text2" /></td>
</tr>
<tr>
<td align="right" height="30"><input type="submit" class="button" value="function_check" name="act" /></td>
<td><div class="check00"><?php if("show"==$funreshow){echo $funre;}?> </div></td>
</tr>
</table>
</div>
</form>
<br /><br />
<form action="<?php echo phpself."?action=testinfo&icon=$icon&#testinfo4"?>" method="post">
<div id="testinfo4">
<!--邮件发送检测-->
<table cellpadding="0" cellspacing="0" border="0" width="80%" class="ctable" id="otable5" align="center">
<tr><th colspan="2">mail邮件发送测试</th></tr>
<tr>
<td width="30%" align="right">请输入您要检测的邮件地址:</td>
<td><input type="text" name="mailreceiver" size="80" <?php echo $ismail?> class="text2" /></td>
</tr>
<tr>
<td align="right" height="30"><input type="submit" class="button" value="sendmail" <?php echo $ismail?> name="act" /></td>
<td><div class="check00"><?php if("show"==$mailreshow){echo $mailre;}?></div></td>
</tr>
</table>
</div>
</form>
<?php
break;
}?>
</div>
</div>
</body>
</html>
<?php
/*=============================================================
函数库
=============================================================*/
/*-------------------------------------------------------------------------------------------------------------
检测函数支持
--------------------------------------------------------------------------------------------------------------*/
function isfun($funname)
{
return (false !== function_exists($funname))?yes:no;
}
/*-------------------------------------------------------------------------------------------------------------
检测php设置参数
--------------------------------------------------------------------------------------------------------------*/
function getcon($varname)
{
switch($res = get_cfg_var($varname))
{
case 0:
return no;
break;
case 1:
return yes;
break;
default:
return $res;
break;
}
}
/*-------------------------------------------------------------------------------------------------------------
整数运算能力测试
--------------------------------------------------------------------------------------------------------------*/
function test_int()
{
$timestart = gettimeofday();
for($i = 0; $i <= 3000000; $i++);
{
$t = 1+1;
}
$timeend = gettimeofday();
$time = ($timeend["usec"]-$timestart["usec"])/1000000+$timeend["sec"]-$timestart["sec"];
$time = round($time, 6)."秒";
return $time;
}
/*-------------------------------------------------------------------------------------------------------------
浮点运算能力测试
--------------------------------------------------------------------------------------------------------------*/
function test_float()
{
$t = pi();
$timestart = gettimeofday();
for($i = 0; $i < 3000000; $i++);
{
sqrt($t);
}
$timeend = gettimeofday();
$time = ($timeend["usec"]-$timestart["usec"])/1000000+$timeend["sec"]-$timestart["sec"];
$time = round($time, 6)."秒";
return $time;
}
/*-------------------------------------------------------------------------------------------------------------
数据io能力测试
--------------------------------------------------------------------------------------------------------------*/
function test_io()
{
$fp = @fopen(phpself, "r");
$timestart = gettimeofday();
for($i = 0; $i < 10000; $i++)
{
@fread($fp, 10240);
@rewind($fp);
}
$timeend = gettimeofday();
@fclose($fp);
$time = ($timeend["usec"]-$timestart["usec"])/1000000+$timeend["sec"]-$timestart["sec"];
$time = round($time, 6)."秒";
return($time);
}
/*-------------------------------------------------------------------------------------------------------------
比例条
--------------------------------------------------------------------------------------------------------------*/
function bar($percent)
{
echo '<br/><ul class="bar">
<li style="width:';
echo $percent."%">";
echo ' </li>
</ul>';
}
/*-------------------------------------------------------------------------------------------------------------
根据不同系统取得cpu相关信息
--------------------------------------------------------------------------------------------------------------*/
switch(php_os) {
case "linux":
$sysreshow = (false !== ($sysinfo = sys_linux()))?"show":"none";
break;
case "freebsd":
$sysreshow = (false !== ($sysinfo = sys_freebsd()))?"show":"none";
break;
case "winnt":
$sysreshow = (false !== ($sysinfo = sys_windows()))?"show":"none";
break;
default:
break;
}
/*-------------------------------------------------------------------------------------------------------------
系统参数探测 linux
--------------------------------------------------------------------------------------------------------------*/
function sys_linux()
{
// cpu
if (false === ($str = @file("/proc/cpuinfo"))) return false;
$str = implode("", $str);
@preg_match_all("/models+names{0,}:+s{0,}([ws)(.]+)[ ]+/", $str, $model);
//@preg_match_all("/cpus+mhzs{0,}:+s{0,}([d.]+)[ ]+/", $str, $mhz);
@preg_match_all("/caches+sizes{0,}:+s{0,}([d.]+s{0,}[a-z]+[ ]+)/", $str, $cache);
if (false !== is_array($model[1]))
{
$res['cpu']['num'] = sizeof($model[1]);
for($i = 0; $i < $res['cpu']['num']; $i++)
{
$res['cpu']['detail'][] = "类型:".$model[1][$i]." 缓存:".$cache[1][$i];
}
if (false !== is_array($res['cpu']['detail'])) $res['cpu']['detail'] = implode("<br />", $res['cpu']['detail']);
}
// uptime
if (false === ($str = @file("/proc/uptime"))) return false;
$str = explode(" ", implode("", $str));
$str = trim($str[0]);
$min = $str / 60;
$hours = $min / 60;
$days = floor($hours / 24);
$hours = floor($hours - ($days * 24));
$min = floor($min - ($days * 60 * 24) - ($hours * 60));
if ($days != 0) {$res['uptime'] = $days."天";}
if ($hours != 0) {$res['uptime'] .= $hours."小时";}
$res['uptime'] .= $min."分钟";
// memory
if (false === ($str = @file("/proc/meminfo"))) return false;
$str = implode("", $str);
preg_match_all("/memtotals{0,}:+s{0,}([d.]+).+?memfrees{0,}:+s{0,}([d.]+).+?swaptotals{0,}:+s{0,}([d.]+).+?swapfrees{0,}:+s{0,}([d.]+)/s", $str, $buf);
$res['memtotal'] = round($buf[1][0]/1024, 2);
$res['memfree'] = round($buf[2][0]/1024, 2);
$res['memused'] = ($res['memtotal']-$res['memfree']);
$res['mempercent'] = (floatval($res['memtotal'])!=0)?round($res['memused']/$res['memtotal']*100,2):0;
$res['swaptotal'] = round($buf[3][0]/1024, 2);
$res['swapfree'] = round($buf[4][0]/1024, 2);
$res['swapused'] = ($res['swaptotal']-$res['swapfree']);
$res['swappercent'] = (floatval($res['swaptotal'])!=0)?round($res['swapused']/$res['swaptotal']*100,2):0;
// load avg
if (false === ($str = @file("/proc/loadavg"))) return false;
$str = explode(" ", implode("", $str));
$str = array_chunk($str, 3);
$res['loadavg'] = implode(" ", $str[0]);
return $res;
}
/*-------------------------------------------------------------------------------------------------------------
系统参数探测 freebsd
--------------------------------------------------------------------------------------------------------------*/
function sys_freebsd()
{
//cpu
if (false === ($res['cpu']['num'] = get_key("hw.ncpu"))) return false;
$res['cpu']['detail'] = get_key("hw.model");
//load avg
if (false === ($res['loadavg'] = get_key("vm.loadavg"))) return false;
$res['loadavg'] = str_replace("{", "", $res['loadavg']);
$res['loadavg'] = str_replace("}", "", $res['loadavg']);
//uptime
if (false === ($buf = get_key("kern.boottime"))) return false;
$buf = explode(' ', $buf);
$sys_ticks = time() - intval($buf[3]);
$min = $sys_ticks / 60;
$hours = $min / 60;
$days = floor($hours / 24);
$hours = floor($hours - ($days * 24));
$min = floor($min - ($days * 60 * 24) - ($hours * 60));
if ($days != 0) $res['uptime'] = $days."天";
if ($hours != 0) $res['uptime'] .= $hours."小时";
$res['uptime'] .= $min."分钟";
//memory
if (false === ($buf = get_key("hw.physmem"))) return false;
$res['memtotal'] = round($buf/1024/1024, 2);
$buf = explode(" ", do_command("vmstat", ""));
$buf = explode(" ", trim($buf[2]));
$res['memfree'] = round($buf[5]/1024, 2);
$res['memused'] = ($res['memtotal']-$res['memfree']);
$res['mempercent'] = (floatval($res['memtotal'])!=0)?round($res['memused']/$res['memtotal']*100,2):0;
$buf = explode(" ", do_command("swapinfo", "-k"));
$buf = $buf[1];
preg_match_all("/([0-9]+)s+([0-9]+)s+([0-9]+)/", $buf, $bufarr);
$res['swaptotal'] = round($bufarr[1][0]/1024, 2);
$res['swapused'] = round($bufarr[2][0]/1024, 2);
$res['swapfree'] = round($bufarr[3][0]/1024, 2);
$res['swappercent'] = (floatval($res['swaptotal'])!=0)?round($res['swapused']/$res['swaptotal']*100,2):0;
return $res;
}
/*-------------------------------------------------------------------------------------------------------------
取得参数值 freebsd
--------------------------------------------------------------------------------------------------------------*/
function get_key($keyname)
{
return do_command('sysctl', "-n $keyname");
}
/*-------------------------------------------------------------------------------------------------------------
确定执行文件位置 freebsd
--------------------------------------------------------------------------------------------------------------*/
function find_command($commandname)
{
$path = array('/bin', '/sbin', '/usr/bin', '/usr/sbin', '/usr/local/bin', '/usr/local/sbin');
foreach($path as $p)
{
if (@is_executable("$p/$commandname")) return "$p/$commandname";
}
return false;
}
/*-------------------------------------------------------------------------------------------------------------
执行系统命令 freebsd
--------------------------------------------------------------------------------------------------------------*/
function do_command($commandname, $args)
{
$buffer = "";
if (false === ($command = find_command($commandname))) return false;
if ($fp = @popen("$command $args", 'r'))
{
while (!@feof($fp))
{
$buffer .= @fgets($fp, 4096);
}
return trim($buffer);
}
return false;
}
/*-------------------------------------------------------------------------------------------------------------
系统参数探测 windows
--------------------------------------------------------------------------------------------------------------*/
function sys_windows()
{
//$phpos=php_os;
$sysinfo['uptime'] ="对不起windows系统不支持";
}
?>
|