本文目录一览:
- 1、php如何判断当前的操作系统是linux还是windows
- 2、如何解决OS X系统中PHP不支持Freetype的问题
- 3、php的服务器cpu数量怎么获取
- 4、php_os显示结果是WINNT 可是我的系统是win 7呀?是怎么回事?
php如何判断当前的操作系统是linux还是windows
PHP判断当前操作系统的方法很多,比如:
1.直接使用PHP预定义常量PHP_OS来获取;
?php
header(“Content-type:text/html;charset=utf-8;”);
$os_name=PHP_OS;
if(strpos($os_name,”Linux”)!==false){
$os_str=”Linux操作系统”;
}else if(strpos($os_name,”WIN”)!==false){
$os_str=”Windows操作系统”;
}
echo $os_str;
2.还可以通过用户浏览器信息来判断操作系统。
?php
header(“Content-type:text/html;charset=utf-8;”);
//测试
echo get_user_os();
//Windows操作系统
function get_user_os(){
//获取用户浏览信息参数
$agent = $_SERVER[‘HTTP_USER_AGENT’];
//获取操作系统类型
if(strpos($agent,”NT 6.1″)){
$os_name =”Windows 7″;
} elseif(strpos($agent,”NT 5.1″)) {
$os_name =”Windows XP (SP2)”;
} elseif(strpos($agent,”NT 5.2″) strpos($agent,”WOW64″)){
$os_name =”Windows XP 64-bit Edition”;
} elseif(strpos($agent,”NT 5.2″)) {
$os_name =”Windows 2003″;
} elseif(strpos($agent,”NT 6.0″)) {
$os_name =”Windows Vista”;
} elseif(strpos($agent,”NT 5.0″)) {
$os_name =”Windows 2000″;
} elseif(strpos($agent,”4.9″)) {
$os_name =”Windows ME”;
} elseif(strpos($agent,”NT 4″)) {
$os_name =”Windows NT 4.0″;
} elseif(strpos($agent,”98″)) {
$os_name =”Windows 98″;
} elseif(strpos($agent,”95″)) {
$os_name =”Windows 95″;
}elseif(strpos($agent,”Linux”)) {
$os_name =”Linux”;
}
//判断
if(strpos($os_name,”Linux”)!==false){
$os_str=”Linux操作系统”;
}else if(strpos($os_name,”Windows”)!==false){
$os_str=”Windows操作系统”;
}else{
$os_str=”未知操作系统”;
}
return $os_str;
}
3.使用php_uname函数来获取;
?php
header(“Content-type:text/html;charset=utf-8;”);
$os_name=php_uname();
if(strpos($os_name,”Linux”)!==false){
$os_str=”Linux操作系统”;
}else if(strpos($os_name,”Windows”)!==false){
$os_str=”Windows操作系统”;
}
echo $os_str;
如何解决OS X系统中PHP不支持Freetype的问题
为了方便显示PHP的信息,写了一个test.php页面,页面的代码很简单:打开页面后,发现当前的PHP版本是5.5,并且GD已经开启,但是没有Freetype库。原来在OSXYosemite10.10自带的PHP是没有将Freetype编译进去的。不过我找了一个简单的法,继续看下去。打开终端,输入命令:curl-sphp-osx.liip.ch/install.shbash-s5.6PS:大家可以直接访问php-osx.liip.ch,虽然是英文,但是介绍是清晰的安装完后,重新打开test.php,PHP的版本已经变成5.6,并且Freetype都已经安装。再打开项目,验证码能够正常显示了。
php的服务器cpu数量怎么获取
?php
header(“Content-type: text/html; charset=utf-8”);
error_reporting(E_ALL ^ E_DEPRECATED);
//linux系统探测
function sys_linux() {
// CPU
if (false === ($str = @file(“/proc/cpuinfo”))) return false;
$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”))) 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(“/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;
// LOAD AVG
if (false === ($str = @file(“/proc/loadavg”))) return false;
$str = explode(‘ ‘, implode(“”, $str));
$str = array_chunk($str, 4);
$res[‘load_avg’] = implode(‘ ‘, $str[0]);
return $res;
}
//FreeBSD系统探测
function sys_freebsd() {
//CPU
if (false === ($res[‘cpu’][‘num’] = get_key(“hw.ncpu”))) return false;
$res[‘cpu’][‘num_text’] = str_replace(array(1,2,4,8,16), array(‘单’,’双’,’四’,’八’,’十六’), $res[‘cpu’][‘num’]).’核’;
$res[‘cpu’][‘model’] = get_key(“hw.model”);
//LOAD AVG
if (false === ($res[‘load_avg’] = get_key(“vm.loadavg”))) return false;
//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[‘mem_total’] = round($buf/1024/1024, 2);
$str = get_key(“vm.vmtotal”);
preg_match_all(“/\nVirtual Memory[\:\s]*\(Total[\:\s]*([\d]+)K[\,\s]*Active[\:\s]*([\d]+)K\)\n/i”, $str, $buff, PREG_SET_ORDER);
preg_match_all(“/\nReal Memory[\:\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
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;
}
//windows系统探测
function sys_windows() {
if(PHP_VERSION = 5) {
$obj_locator = new COM(“WbemScripting.SWbemLocator”);
$wmi = $obj_locator-ConnectServer();
} else {
return false;
}
//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;
}
function GetWMI($wmi, $strClass, $strValue = array()) {
$arrData = array();
$objWEBM = $wmi-Get($strClass);
$arrProp = $objWEBM-Properties_;
$arrWEBMCol = $objWEBM-Instances_();
foreach($arrWEBMCol as $objItem) {
@reset($arrProp);
$arrInstance = array();
foreach($arrProp as $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类,根据操作系统来进行判断。
调用?php echo ‘[‘.$sys_info[‘cpu’][‘num_text’].’] ‘.$sys_info[‘cpu’][‘model’]; ?
php_os显示结果是WINNT 可是我的系统是win 7呀?是怎么回事?
和你的系统是win 7 还是win 8没有关系,php环境检测的时候,微软的windows系统都是这样显示的
只要是windows系统,都是显示的WINNT
WINNT 表示的是你的系统环境是windows
win 7 表示的是你的系统版本是 windows7
一个是系统环境,一个是系统版本
原创文章,作者:HFOI,如若转载,请注明出处:https://www.506064.com/n/137816.html