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中Cannot send session cache limiter 的问题的方法
Apr 27 PHP
php设计模式 Interpreter(解释器模式)
Jun 26 PHP
php 短链接算法收集与分析
Dec 30 PHP
做了CDN获取用户真实IP的函数代码(PHP与Asp设置方式)
Apr 13 PHP
file_get_contents("php://input", "r")实例介绍
Jul 01 PHP
PHP中time(),date(),mktime()区别介绍
Sep 28 PHP
PHP获取指定函数定义在哪个文件中以及其所在的行号实例
May 08 PHP
PHP的fsockopen、pfsockopen函数被主机商禁用的解决办法
Jul 08 PHP
Laravel框架使用Seeder实现自动填充数据功能
Jun 13 PHP
实例讲解php实现多线程
Jan 27 PHP
Thinkphp5 自定义上传文件名的实现方法
Jul 23 PHP
Laravel框架Eloquent ORM简介、模型建立及查询数据操作详解
Dec 04 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
十大“创意”战术!
2020/03/04 星际争霸
php侧拉菜单 漂亮,可以向右或者向左展开,支持FF,IE
2009/10/15 PHP
探讨PHP JSON中文乱码的解决方法详解
2013/06/06 PHP
Laravel与CI框架中截取字符串函数
2016/05/08 PHP
php时间计算相关问题小结
2016/05/09 PHP
PHP开发api接口安全验证操作实例详解
2020/03/26 PHP
jQuery 浮动广告实现代码
2008/12/25 Javascript
Angularjs 自定义服务的三种方式(推荐)
2016/08/02 Javascript
jQuery内存泄露解决办法
2016/12/13 Javascript
js实现把图片的绝对路径转为base64字符串、blob对象再上传
2016/12/29 Javascript
你不知道的 javascript【推荐】
2017/01/08 Javascript
react-router中的属性详解
2017/06/01 Javascript
JS计算距当前时间的时间差实例
2017/12/29 Javascript
解决Layui数据表格中checkbox位置不居中的方法
2018/08/15 Javascript
jquery使用FormData实现异步上传文件
2018/10/25 jQuery
Vue项目安装插件并保存
2019/01/28 Javascript
Vue触发隐藏input file的方法实例详解
2019/08/14 Javascript
layui 表格操作列按钮动态显示的实现方法
2019/09/06 Javascript
刷新页面后让控制台的js代码继续执行
2019/09/20 Javascript
JavaScript实现移动端带transition动画的轮播效果
2020/03/24 Javascript
python生成随机mac地址的方法
2015/03/16 Python
为什么入门大数据选择Python而不是Java?
2018/03/07 Python
单利模式及python实现方式详解
2018/03/20 Python
Flask框架配置与调试操作示例
2018/07/23 Python
django多个APP的urls设置方法(views重复问题解决)
2019/07/19 Python
python中字典增加和删除使用方法
2020/09/30 Python
Fnac西班牙官网:法国文化和电子产品零售商
2021/03/14 全球购物
如何用Java实现列出某个目录下的所有子目录
2015/07/20 面试题
校运会广播稿100字
2014/01/27 职场文书
12.4法制宣传日标语
2014/10/08 职场文书
高一军训决心书
2015/02/05 职场文书
2015年教师自我评价范文
2015/03/04 职场文书
民事二审代理词
2015/05/25 职场文书
2015年依法治校工作总结
2015/07/27 职场文书
详解Redis复制原理
2021/06/04 Redis
win10电脑双屏显示一个黑屏怎么办?win10电脑双屏显示一个黑屏解决方法
2022/07/15 数码科技