php判断当前操作系统类型


Posted in PHP onOctober 28, 2015

如何使用php获取当前操作系统类型呢?严格来说这里分两种情况,一种情况是获取服务器端的操作系统类型,一种是获取客户端的操作系统类型。下面作者将对如何使用php获取这两种情况下的操作系统类型和大家做一些分享。
(1)php获取服务器端的操作系统类型
这个时候可以使用php系统自带的常量 PHP_OS 或者系统函数php_uname('s')关于这两者返回的值可能的情况基本有如下几种情况:

  • CYGWIN_NT-5.1
  • Darwin
  • FreeBSD
  • HP-UX
  • IRIX64
  • Linux
  • NetBSD
  • OpenBSD
  • SunOS
  • Unix
  • WIN32
  • WINNT
  • Windows
  • CYGWIN_NT-5.1
  • IRIX64
  • SunOS
  • HP-UX
  • OpenBSD

不过根据具体情况读者还是自行打印出来结果看看最好,也许获得的结果不在上述之列。
(2)php获取客户端的操作系统类型,这里分享一个函数,比网上流传的那些判断更加精准,而且没有bug,函数代码如下:

function getOS(){ 
 $os=''; 
 $Agent=$_SERVER['HTTP_USER_AGENT']; 
 if (eregi('win',$Agent)&&strpos($Agent, '95')){ 
  $os='Windows 95'; 
 }elseif(eregi('win 9x',$Agent)&&strpos($Agent, '4.90')){ 
  $os='Windows ME'; 
 }elseif(eregi('win',$Agent)&&ereg('98',$Agent)){ 
  $os='Windows 98'; 
 }elseif(eregi('win',$Agent)&&eregi('nt 5.0',$Agent)){ 
  $os='Windows 2000'; 
 }elseif(eregi('win',$Agent)&&eregi('nt 6.0',$Agent)){ 
  $os='Windows Vista'; 
 }elseif(eregi('win',$Agent)&&eregi('nt 6.1',$Agent)){ 
  $os='Windows 7'; 
 }elseif(eregi('win',$Agent)&&eregi('nt 5.1',$Agent)){ 
  $os='Windows XP'; 
 }elseif(eregi('win',$Agent)&&eregi('nt',$Agent)){ 
  $os='Windows NT'; 
 }elseif(eregi('win',$Agent)&&ereg('32',$Agent)){ 
  $os='Windows 32'; 
 }elseif(eregi('linux',$Agent)){ 
  $os='Linux'; 
 }elseif(eregi('unix',$Agent)){ 
  $os='Unix'; 
 }else if(eregi('sun',$Agent)&&eregi('os',$Agent)){ 
  $os='SunOS'; 
 }elseif(eregi('ibm',$Agent)&&eregi('os',$Agent)){ 
  $os='IBM OS/2'; 
 }elseif(eregi('Mac',$Agent)&&eregi('PC',$Agent)){ 
  $os='Macintosh'; 
 }elseif(eregi('PowerPC',$Agent)){ 
  $os='PowerPC'; 
 }elseif(eregi('AIX',$Agent)){ 
  $os='AIX'; 
 }elseif(eregi('HPUX',$Agent)){ 
  $os='HPUX'; 
 }elseif(eregi('NetBSD',$Agent)){ 
  $os='NetBSD'; 
 }elseif(eregi('BSD',$Agent)){ 
  $os='BSD'; 
 }elseif(ereg('OSF1',$Agent)){ 
  $os='OSF1'; 
 }elseif(ereg('IRIX',$Agent)){ 
  $os='IRIX'; 
 }elseif(eregi('FreeBSD',$Agent)){ 
  $os='FreeBSD'; 
 }elseif($os==''){ 
  $os='Unknown'; 
 } 
 return $os; 
}

根据服务器端还是客户端来决定采取的办法,希望通过这篇文章大家知道如何使用php获取当前操作系统类型。

PHP 相关文章推荐
php数组函数序列之array_splice() - 在数组任意位置插入元素
Nov 07 PHP
php mysql_real_escape_string函数用法与实例教程
Sep 30 PHP
php过滤html标记属性类用法实例
Sep 23 PHP
php jsonp单引号转义
Nov 23 PHP
VPS中使用LNMP安装WordPress教程
Dec 28 PHP
WampServer搭建php环境时遇到的问题汇总
Jul 23 PHP
php实现smarty模板无限极分类的方法
Dec 07 PHP
php阿拉伯数字转中文人民币大写
Dec 21 PHP
ThinkPHP路由机制简介
Mar 23 PHP
php实现页面纯静态的实例代码
Jun 21 PHP
Laravel如何使用Redis共享Session
Feb 23 PHP
laravel框架中表单请求类型和CSRF防护实例分析
Nov 23 PHP
详解PHP序列化反序列化的方法
Oct 27 #PHP
php使用ZipArchive函数实现文件的压缩与解压缩
Oct 27 #PHP
php常量详细解析
Oct 27 #PHP
php过滤所有的空白字符(空格、全角空格、换行等)
Oct 27 #PHP
PHP的APC模块实现上传进度条
Oct 27 #PHP
php+ajax制作无刷新留言板
Oct 27 #PHP
一个完整的php文件上传类实例讲解
Oct 27 #PHP
You might like
php中批量修改文件后缀名的函数代码
2011/10/23 PHP
深入php self与$this的详解
2013/06/08 PHP
是 WordPress 让 PHP 更流行了 而不是框架
2016/02/03 PHP
PHP使用zlib扩展实现GZIP压缩输出的方法详解
2018/04/09 PHP
PHP观察者模式定义与用法实例分析
2019/03/22 PHP
php7 图形用户界面GUI 开发示例
2020/02/22 PHP
RR vs IO BO3 第二场2.13
2021/03/10 DOTA
小议javascript 设计模式 推荐
2009/10/28 Javascript
javascript 数据类型转换(parseInt,parseFloat)
2010/07/20 Javascript
JS中批量给元素绑定事件过程中的相关问题使用闭包解决
2013/04/15 Javascript
无闪烁更新网页内容JS实现
2013/12/19 Javascript
jQuery实现图片渐入渐出切换展示效果
2015/08/15 Javascript
JavaScrip调试技巧之断点调试
2015/10/22 Javascript
JavaScript缓冲运动实现方法(2则示例)
2016/01/08 Javascript
Node.js设置CORS跨域请求中多域名白名单的方法
2017/03/28 Javascript
基于react组件之间的参数传递(详解)
2017/09/05 Javascript
Vue 让元素抖动/摆动起来的实现代码
2018/05/31 Javascript
springMvc 前端用json的方式向后台传递对象数组方法
2018/08/07 Javascript
Vue中的vue-resource示例详解
2018/11/02 Javascript
玩转Koa之koa-router原理解析
2018/12/29 Javascript
javascript删除数组元素的七个方法示例
2019/09/09 Javascript
[45:46]2014 DOTA2国际邀请赛中国区预选赛5.21 HGT VS DT
2014/05/23 DOTA
python单例模式实例分析
2015/04/08 Python
高质量Python代码编写的5个优化技巧
2017/11/16 Python
python修改txt文件中的某一项方法
2018/12/29 Python
Python3+Appium实现多台移动设备操作的方法
2019/07/05 Python
解决pandas展示数据输出时列名不能对齐的问题
2019/11/18 Python
jupyter notebook 的工作空间设置操作
2020/04/20 Python
python将dict中的unicode打印成中文实例
2020/05/11 Python
澳大利亚在线百货商店:Real Smart
2017/08/13 全球购物
100%有机精油,美容油:House of Pure Essence
2018/10/30 全球购物
Oracle快照(snapshot)
2015/03/13 面试题
大学生如何写自荐信
2014/01/08 职场文书
女生节标语
2014/06/26 职场文书
《分数的意义》教学反思
2016/02/20 职场文书
PyTorch 如何检查模型梯度是否可导
2021/06/05 Python