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 相关文章推荐
WINDOWS 2000下使用ISAPI方式安装PHP
Sep 05 PHP
如何对PHP程序中的常见漏洞进行攻击(上)
Oct 09 PHP
php桌面中心(一) 创建数据库
Mar 11 PHP
PHP curl模拟浏览器采集阿里巴巴的实现代码
Apr 20 PHP
使用php实现下载生成某链接快捷方式的解决方法
May 07 PHP
php版微信开发Token验证失败或请求URL超时问题的解决方法
Sep 23 PHP
Thinkphp通过一个入口文件如何区分移动端和PC端
Apr 18 PHP
PHP+redis实现的购物车单例类示例
Feb 02 PHP
PHP5.5基于mysqli连接MySQL数据库和读取数据操作实例详解
Feb 16 PHP
PHP实现百度人脸识别
May 06 PHP
浅谈laravel-admin的sortable和orderby使用问题
Oct 03 PHP
laravel中数据显示方法(默认值和下拉option默认选中)
Oct 11 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反射类ReflectionClass和ReflectionObject的使用方法
2013/11/13 PHP
采用CSS和JS,刚好我最近有个站点要用到下拉菜单!
2006/06/26 Javascript
让angularjs支持浏览器自动填表
2014/11/10 Javascript
node.js中的fs.utimesSync方法使用说明
2014/12/15 Javascript
jquery+javascript编写国籍控件
2015/02/12 Javascript
jquery实现的树形目录实例
2015/06/26 Javascript
js实现三张图(文)片一起切换的banner焦点图
2015/08/25 Javascript
jquery实现可点击伸缩与展开的菜单效果代码
2015/08/31 Javascript
JS模拟酷狗音乐播放器收缩折叠关闭效果代码
2015/10/29 Javascript
多种js图片预加载实现方式分享
2016/02/19 Javascript
js控制TR的显示隐藏
2016/03/04 Javascript
JS实现消息来时让网页标题闪动效果的方法
2016/04/20 Javascript
微信小程序  wx.request合法域名配置详解
2016/11/23 Javascript
js仿百度音乐全选操作
2017/01/13 Javascript
如何在基于vue-cli的项目自定义打包环境
2018/11/10 Javascript
JavaScript实现简单轮播图效果
2018/12/01 Javascript
vue之延时刷新实例
2019/11/14 Javascript
原生JS与CSS实现软件卸载对话框功能
2019/12/05 Javascript
详解Vue 单文件组件的三种写法
2020/02/19 Javascript
[43:35]TI4 循环赛第二日Liquid vs Fnatic
2014/07/11 DOTA
python基础教程之python消息摘要算法使用示例
2014/02/10 Python
Python3里的super()和__class__使用介绍
2015/04/23 Python
Python中使用装饰器时需要注意的一些问题
2015/05/11 Python
python cx_Oracle的基础使用方法(连接和增删改查)
2017/11/19 Python
使用Python处理BAM的方法
2018/09/28 Python
python函数map()和partial()的知识点总结
2020/05/26 Python
Pandas对每个分组应用apply函数的实现
2020/12/13 Python
美体小铺加拿大官方网站:The Body Shop加拿大
2016/10/30 全球购物
BabyBjörn婴儿背带法国官网:BabyBjorn法国
2018/06/16 全球购物
PHP经典面试题
2016/09/03 面试题
高校毕业生登记表自我鉴定
2013/11/03 职场文书
超市总经理岗位职责
2014/02/02 职场文书
计算机毕业大学生求职信
2014/06/26 职场文书
简单租房协议书范本
2014/08/20 职场文书
离职员工给领导和同事的感谢信
2015/11/03 职场文书
SpringBoot 整合mongoDB并自定义连接池的示例代码
2022/02/28 MongoDB