php获取服务器信息 php文件管理系统
怎样获取服务器跟地路径php
PHP编程中经常需要用到一些服务器的一些资料,特把$_SERVER的详细参数整理下,方便以后使用。
$_SERVER['PHP_SELF']#当前正在执行脚本的文件名,与 document root相关。
$_SERVER['argv']#传递给该脚本的参数。
$_SERVER['argc']#包含传递给程序的命令行参数的个数(如果运行在命令行模式)。
$_SERVER['GATEWAY_INTERFACE']#服务器使用的 CGI规范的版本。例如,“CGI/1.1”。
$_SERVER['SERVER_NAME']#当前运行脚本所在服务器主机的名称。
$_SERVER['SERVER_SOFTWARE']#服务器标识的字串,在响应请求时的头部中给出。
$_SERVER['SERVER_PROTOCOL']#请求页面时通信协议的名称和版本。例如,“HTTP/1.0”。
$_SERVER['REQUEST_METHOD']#访问页面时的请求方法。例如:“GET”、“HEAD”,“POST”,“PUT”。
$_SERVER['QUERY_STRING']#查询(query)的字符串。
$_SERVER['DOCUMENT_ROOT']#当前运行脚本所在的文档根目录。在服务器配置文件中定义。
$_SERVER['HTTP_ACCEPT']#当前请求的 Accept:头部的内容。
$_SERVER['HTTP_ACCEPT_CHARSET']#当前请求的 Accept-Charset:头部的内容。例如:“iso-8859-1,*,utf-8”。
$_SERVER['HTTP_ACCEPT_ENCODING']#当前请求的 Accept-Encoding:头部的内容。例如:“gzip”。
$_SERVER['HTTP_ACCEPT_LANGUAGE']#当前请求的 Accept-Language:头部的内容。例如:“en”。
$_SERVER['HTTP_CONNECTION']#当前请求的 Connection:头部的内容。例如:“Keep-Alive”。
$_SERVER['HTTP_HOST']#当前请求的 Host:头部的内容。
$_SERVER['HTTP_REFERER']#链接到当前页面的前一页面的 URL地址。
$_SERVER['HTTP_USER_AGENT']#当前请求的 User_Agent:头部的内容。
$_SERVER['HTTPS']—如果通过https访问,则被设为一个非空的值(on),否则返回off
$_SERVER['REMOTE_ADDR']#正在浏览当前页面用户的 IP地址。
$_SERVER['REMOTE_HOST']#正在浏览当前页面用户的主机名。
$_SERVER['REMOTE_PORT']#用户连接到服务器时所使用的端口。
$_SERVER['SCRIPT_FILENAME']#当前执行脚本的绝对路径名。
$_SERVER['SERVER_ADMIN']#管理员信息
$_SERVER['SERVER_PORT']#服务器所使用的端口
$_SERVER['SERVER_SIGNATURE']#包含服务器版本和虚拟主机名的字符串。
$_SERVER['PATH_TRANSLATED']#当前脚本所在文件系统(不是文档根目录)的基本路径。
$_SERVER['SCRIPT_NAME']#包含当前脚本的路径。这在页面需要指向自己时非常有用。
$_SERVER['REQUEST_URI']#访问此页面所需的 URI。例如,“/index.html”。
$_SERVER['PHP_AUTH_USER']#当 PHP运行在 Apache模块方式下,并且正在使用 HTTP认证功能,这个变量便是用户输入的用户名。
$_SERVER['PHP_AUTH_PW']#当 PHP运行在 Apache模块方式下,并且正在使用 HTTP认证功能,这个变量便是用户输入的密码。
php 获取服务器计算机名和服务器域名
1、做成web服务器需要满足:域名或者公网ip,电脑安装配置web服务,开启80端口允许访问,网站程序。
2、域名或者公网ip,这一点一般家用宽带没有固定的公网ip,常用的动态域名解析花生壳,科迈动态解析,建议申请使用花生壳动态域名解析,并设置到路由器上,这样网站的访问域名是花生壳的子域名。
3、如果有公网固定ip,建议购买一个域名解析到这个ip上,这个公网ip可以在电脑直接设定。web绑定,防火墙允许80端口就可以了。
4、电脑安装配置web服务,这个条件比较好实现,找个服务器操作系统,如win2003系统,安装上iis组件就可以了,默认80就打开了,然后再配置一下程序需要的环境。
5、如果.net程序就安装net framwork相应版本,如果php就配置php+mysql环境。
6、家用宽带默认80端口在路由器不开放的,需要在路由器上做端口映射,将个人电脑ip 80端口通过宽带路由映射出去。
7、网站程序,自己会开发了可以自己做,不会了到网上下载一些开源程序就可以了。
php的服务器cpu数量怎么获取
<?php
header("Content-type:text/html;charset=utf-8");
error_reporting(E_ALL^E_DEPRECATED);
//linux系统探测
functionsys_linux(){
//CPU
if(false===($str=@file("/proc/cpuinfo")))returnfalse;
$str=implode("",$str);
@preg_match_all("/model\s+name\s{0,}\:+\s{0,}([\w\s\)\(\@.-]+)([\r\n]+)/s",$str,$model);
@preg_match_all("/cpu\s+MHz\s{0,}\:+\s{0,}([\d\.]+)[\r\n]+/",$str,$mhz);
@preg_match_all("/cache\s+size\s{0,}\:+\s{0,}([\d\.]+\s{0,}[A-Z]+[\r\n]+)/",$str,$cache);
@preg_match_all("/bogomips\s{0,}\:+\s{0,}([\d\.]+)[\r\n]+/",$str,$bogomips);
if(false!==is_array($model[1])){
$res['cpu']['num']=sizeof($model[1]);
$res['cpu']['num_text']=str_replace(array(1,2,4,8,16),array('单','双','四','八','十六'),$res['cpu']['num']).'核';
/*
for($i=0;$i<$res['cpu']['num'];$i++){
$res['cpu']['model'][]=$model[1][$i].' ('.$mhz[1][$i].')';
$res['cpu']['mhz'][]=$mhz[1][$i];
$res['cpu']['cache'][]=$cache[1][$i];
$res['cpu']['bogomips'][]=$bogomips[1][$i];
}*/
$x1=($res['cpu']['num']==1)?'':'×'.$res['cpu']['num'];
$mhz[1][0]='|频率:'.$mhz[1][0];
$cache[1][0]='|二级缓存:'.$cache[1][0];
$bogomips[1][0]='|Bogomips:'.$bogomips[1][0];
$res['cpu']['model'][]=$model[1][0].$mhz[1][0].$cache[1][0].$bogomips[1][0].$x1;
if(false!==is_array($res['cpu']['model']))$res['cpu']['model']=implode("<br/>",$res['cpu']['model']);
if(false!==is_array($res['cpu']['mhz']))$res['cpu']['mhz']=implode("<br/>",$res['cpu']['mhz']);
if(false!==is_array($res['cpu']['cache']))$res['cpu']['cache']=implode("<br/>",$res['cpu']['cache']);
if(false!==is_array($res['cpu']['bogomips']))$res['cpu']['bogomips']=implode("<br/>",$res['cpu']['bogomips']);
}
//NETWORK
//UPTIME
if(false===($str=@file("/proc/uptime")))returnfalse;
$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")))returnfalse;
$str=implode("",$str);
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);
preg_match_all("/Buffers\s{0,}\:+\s{0,}([\d\.]+)/s",$str,$buffers);
$res['mem_total']=round($buf[1][0]/1024,2);
$res['mem_free']=round($buf[2][0]/1024,2);
$res['mem_buffers']=round($buffers[1][0]/1024,2);
$res['mem_cached']=round($buf[3][0]/1024,2);
$res['mem_used']=$res['mem_total']-$res['mem_free'];
$res['mem_percent']=(floatval($res['mem_total'])!=0)?round($res['mem_used']/$res['mem_total']*100,2):0;
$res['mem_real_used']=$res['mem_total']-$res['mem_free']-$res['mem_cached']-$res['mem_buffers'];//真实内存使用
$res['mem_real_free']=$res['mem_total']-$res['mem_real_used'];//真实空闲
$res['mem_real_percent']=(floatval($res['mem_total'])!=0)?round($res['mem_real_used']/$res['mem_total']*100,2):0;//真实内存使用率
$res['mem_cached_percent']=(floatval($res['mem_cached'])!=0)?round($res['mem_cached']/$res['mem_total']*100,2):0;//Cached内存使用率
$res['swap_total']=round($buf[4][0]/1024,2);
$res['swap_free']=round($buf[5][0]/1024,2);
$res['swap_used']=round($res['swap_total']-$res['swap_free'],2);
$res['swap_percent']=(floatval($res['swap_total'])!=0)?round($res['swap_used']/$res['swap_total']*100,2):0;
//LOADAVG
if(false===($str=@file("/proc/loadavg")))returnfalse;
$str=explode('',implode("",$str));
$str=array_chunk($str,4);
$res['load_avg']=implode('',$str[0]);
return$res;
}
//FreeBSD系统探测
functionsys_freebsd(){
//CPU
if(false===($res['cpu']['num']=get_key("hw.ncpu")))returnfalse;
$res['cpu']['num_text']=str_replace(array(1,2,4,8,16),array('单','双','四','八','十六'),$res['cpu']['num']).'核';
$res['cpu']['model']=get_key("hw.model");
//LOADAVG
if(false===($res['load_avg']=get_key("vm.loadavg")))returnfalse;
//UPTIME
if(false===($buf=get_key("kern.boottime")))returnfalse;
$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")))returnfalse;
$res['mem_total']=round($buf/1024/1024,2);
$str=get_key("vm.vmtotal");
preg_match_all("/\nVirtualMemory[\:\s]*\(Total[\:\s]*([\d]+)K[\,\s]*Active[\:\s]*([\d]+)K\)\n/i",$str,$buff,PREG_SET_ORDER);
preg_match_all("/\nRealMemory[\:\s]*\(Total[\:\s]*([\d]+)K[\,\s]*Active[\:\s]*([\d]+)K\)\n/i",$str,$buf,PREG_SET_ORDER);
$res['mem_real_used']=round($buf[0][2]/1024,2);
$res['mem_cached']=round($buff[0][2]/1024,2);
$res['mem_used']=round($buf[0][1]/1024,2)+$res['mem_cached'];
$res['mem_free']=$res['mem_total']-$res['mem_used'];
$res['mem_percent']=(floatval($res['mem_total'])!=0)?round($res['mem_used']/$res['mem_total']*100,2):0;
$res['mem_real_percent']=(floatval($res['mem_total'])!=0)?round($res['mem_real_used']/$res['mem_total']*100,2):0;
return$res;
}
//取得参数值FreeBSD
functionget_key($keyName){
returndo_command('sysctl',"-n$keyName");
}
//确定执行文件位置FreeBSD
functionfind_command($commandName){
$path=array('/bin','/sbin','/usr/bin','/usr/sbin','/usr/local/bin','/usr/local/sbin');
foreach($pathas$p){
if(@is_executable("$p/$commandName"))return"$p/$commandName";
}
returnfalse;
}
//windows系统探测
functionsys_windows(){
if(PHP_VERSION>=5){
$obj_locator=newCOM("WbemScripting.SWbemLocator");
$wmi=&$obj_locator->ConnectServer();
}else{
returnfalse;
}
//CPU
$cpuinfo=GetWMI(&$wmi,"Win32_Processor",array("Name","L2CacheSize","NumberOfCores"));
$res['cpu']['num']=$cpuinfo[0]['NumberOfCores'];
if(null==$res['cpu']['num']){
$res['cpu']['num']=1;
}
$res['cpu']['num_text']=str_replace(array(1,2,4,8,16),array('单','双','四','八','十六'),$res['cpu']['num']).'核';
/*
for($i=0;$i<$res['cpu']['num'];$i++){
$res['cpu']['model'].=$cpuinfo[0]['Name']."<br/>";
$res['cpu']['cache'].=$cpuinfo[0]['L2CacheSize']."<br/>";
}*/
$cpuinfo[0]['L2CacheSize']='('.$cpuinfo[0]['L2CacheSize'].')';
$x1=($res['cpu']['num']==1)?'':'×'.$res['cpu']['num'];
$res['cpu']['model']=$cpuinfo[0]['Name'].$cpuinfo[0]['L2CacheSize'].$x1;
//SYSINFO
$sysinfo=GetWMI(&$wmi,"Win32_OperatingSystem",array('LastBootUpTime','TotalVisibleMemorySize','FreePhysicalMemory','Caption','CSDVersion','SerialNumber','InstallDate'));
$sysinfo[0]['Caption']=iconv('GBK','UTF-8',$sysinfo[0]['Caption']);
$sysinfo[0]['CSDVersion']=iconv('GBK','UTF-8',$sysinfo[0]['CSDVersion']);
$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)))."安装";
//UPTIME
$res['uptime']=$sysinfo[0]['LastBootUpTime'];
$sys_ticks=time()-strtotime(substr($res['uptime'],0,14));
$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
$res['mem_total']=round($sysinfo[0]['TotalVisibleMemorySize']/1024,2);
$res['mem_free']=round($sysinfo[0]['FreePhysicalMemory']/1024,2);
$res['mem_used']=$res['mem_total']-$res['mem_free'];//上面两行已经除以1024,这行不用再除了
$res['mem_percent']=round($res['mem_used']/$res['mem_total']*100,2);
//LoadPercentage
$loadinfo=GetWMI(&$wmi,"Win32_Processor",array("LoadPercentage"));
$res['load_avg']=$loadinfo[0]['LoadPercentage'];
return$res;
}
functionGetWMI(&$wmi,$strClass,$strValue=array()){
$arrData=array();
$objWEBM=$wmi->Get($strClass);
$arrProp=$objWEBM->Properties_;
$arrWEBMCol=$objWEBM->Instances_();
foreach($arrWEBMColas$objItem){
@reset($arrProp);
$arrInstance=array();
foreach($arrPropas$propItem){
eval("\$value=\$objItem->".$propItem->Name.";");
if(empty($strValue)){
$arrInstance[$propItem->Name]=trim($value);
}else{
if(in_array($propItem->Name,$strValue)){
$arrInstance[$propItem->Name]=trim($value);
}
}
}
$arrData[]=$arrInstance;
}
return$arrData;
}
//根据操作系统取得CPU相关信息
switch(PHP_OS){
case"Linux":
$sysReShow=(($sys_info=sys_linux())!==false)?"show":"none";
break;
case"FreeBSD":
$sysReShow=(($sys_info=sys_freebsd())!==false)?"show":"none";
break;
case"WINNT":
$sysReShow=(($sys_info=sys_windows())!==false)?"show":"none";
break;
default:
break;
}
?>
此PHP类,根据操作系统来进行判断。
调用<?phpecho'['.$sys_info['cpu']['num_text'].']'.$sys_info['cpu']['model'];?>