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 相关文章推荐
Zend studio for eclipse中使php可以调用mysql相关函数的设置方法
Oct 13 PHP
PHP 模拟登陆MSN并获得用户信息
May 16 PHP
PHP pathinfo()获得文件的路径、名称等信息说明
Sep 13 PHP
php判断数组中是否存在指定键(key)的方法
Mar 17 PHP
php使用gettimeofday函数返回当前时间并存放在关联数组里
Mar 19 PHP
PHP中的魔术方法总结和使用实例
May 11 PHP
详解PHP的Yii框架中的Controller控制器
Mar 29 PHP
Yii2组件之多图上传插件FileInput的详细使用教程
Jun 20 PHP
PHP构造函数与析构函数用法示例
Sep 28 PHP
php设计模式之适配器模式原理、用法及注意事项详解
Sep 24 PHP
浅谈laravel-admin form中的数据,在提交后,保存前,获取并进行编辑
Oct 21 PHP
PHP rsa加密解密算法原理解析
Dec 09 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来处理多个提交任务
2006/10/09 PHP
一步一步学习PHP(7) php 字符串相关应用
2010/03/05 PHP
基于CakePHP实现的简单博客系统实例
2015/06/28 PHP
几个优化WordPress中JavaScript加载体验的插件介绍
2015/12/17 PHP
thinkphp3.x自定义Action、Model及View的简单实现方法
2016/05/19 PHP
OAuth认证协议中的HMACSHA1加密算法(实例)
2017/10/25 PHP
php抽象类和接口知识点整理总结
2019/08/02 PHP
PHP call_user_func和call_user_func_array函数的简单理解与应用分析
2019/11/25 PHP
基于jquery的Repeater实现代码
2010/07/17 Javascript
jQuery源码中的chunker 正则过滤符分析
2012/07/31 Javascript
目前流行的JavaScript库的介绍及对比
2013/09/29 Javascript
兼容IE、firefox以及chrome的js获取时间(getFullYear)
2014/07/04 Javascript
5种处理js跨域问题方法汇总
2014/12/04 Javascript
Nodejs爬虫进阶教程之异步并发控制
2016/02/15 NodeJs
Angular 2应用的8个主要构造块有哪些
2016/10/17 Javascript
jQuery实现的小图列表,大图展示效果幻灯片示例
2016/10/25 Javascript
JS实现淡入淡出图片效果的方法分析
2016/12/20 Javascript
canvas 弹幕效果(实例分享)
2017/01/11 Javascript
微信小程序登录按钮遮罩浮层效果的实现方法
2018/12/16 Javascript
简单介绍Python中的filter和lambda函数的使用
2015/04/07 Python
在Python中操作字典之setdefault()方法的使用
2015/05/21 Python
Django项目中用JS实现加载子页面并传值的方法
2018/05/28 Python
对python以16进制打印字节数组的方法详解
2019/01/24 Python
用Python解决x的n次方问题
2019/02/08 Python
pandas的to_datetime时间转换使用及学习心得
2019/08/11 Python
Python如何在main中调用函数内的函数方式
2020/06/01 Python
全球领先的美容用品专卖店:Beauty Plus Salon
2018/09/04 全球购物
毕业生求职简历的自我评价
2013/10/23 职场文书
劳动竞赛活动方案
2014/02/20 职场文书
廉洁使者实施方案
2014/03/29 职场文书
初中生操行评语大全
2014/04/24 职场文书
森林防火标语
2014/06/23 职场文书
预备党员期盼十八届四中全会召开思想汇报
2014/10/17 职场文书
好媳妇事迹材料
2014/12/24 职场文书
安徽导游词
2015/02/12 职场文书
Go本地测试解耦任务拆解及沟通详解Go本地测试的思路沟通的重要性总结
2022/06/21 Golang