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].'&nbsp;('.$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'];?>

阅读剩余
THE END