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 字符串分割和比较
Oct 06 PHP
解析php取整的几种方式
Jun 25 PHP
使用gd库实现php服务端图片裁剪和生成缩略图功能分享
Dec 25 PHP
DOM基础及php读取xml内容操作的方法
Jan 23 PHP
php+mysqli实现批量执行插入、更新及删除数据的方法
Jan 29 PHP
php中执行系统命令的方法
Mar 21 PHP
php创建桌面快捷方式实现方法
Dec 31 PHP
PHP数组函数array_multisort()用法实例分析
Apr 02 PHP
PHP文件及文件夹操作之创建、删除、移动、复制
Jul 13 PHP
PHP面向对象程序设计OOP继承用法入门示例
Dec 27 PHP
YII框架批量插入数据的方法
Mar 18 PHP
Laravel框架实现的上传图片到七牛功能详解
Sep 06 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数据库配置文件一般做法分享
2012/07/07 PHP
关于PHP内存溢出问题的解决方法
2013/06/25 PHP
php取整函数ceil,floo,round的用法及介绍
2013/08/31 PHP
PHP面向对象五大原则之单一职责原则(SRP)详解
2018/04/04 PHP
tp5实现微信小程序多图片上传到服务器功能
2018/07/16 PHP
js判断变量是否未定义的代码
2020/03/28 Javascript
JavaScript通过RegExp实现客户端验证处理程序
2013/05/07 Javascript
实例详解JSON数据格式及json格式数据域字符串相互转换
2016/01/07 Javascript
使用Bootstrap框架制作查询页面的界面实例代码
2016/05/27 Javascript
浅谈通过JS拦截 pushState和replaceState事件
2017/07/21 Javascript
JS数组操作中的经典算法实例讲解
2017/07/26 Javascript
react-native封装插件swiper的使用方法
2018/03/20 Javascript
详解如何使用babel进行es6文件的编译
2018/05/29 Javascript
在vue2.0中引用element-ui组件库的方法
2018/06/21 Javascript
Vue项目引进ElementUI组件的方法
2018/11/11 Javascript
jquery制作的移动端购物车效果完整示例
2020/02/24 jQuery
[02:57]DOTA2亚洲邀请赛 SECRET战队出场宣传片
2015/02/07 DOTA
[01:02:46]VGJ.S vs NB 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
python爬虫教程之爬取百度贴吧并下载的示例
2014/03/07 Python
Python查找相似单词的方法
2015/03/05 Python
Python实现队列的方法
2015/05/26 Python
学习python 之编写简单乘法运算题
2016/02/27 Python
python中函数传参详解
2016/07/03 Python
Python 爬虫学习笔记之单线程爬虫
2016/09/21 Python
python获取指定时间差的时间实例详解
2017/04/11 Python
Python设计模式之抽象工厂模式原理与用法详解
2019/01/15 Python
实习教师个人的自我评价
2013/11/08 职场文书
2014年科技工作总结
2014/11/26 职场文书
2015年中学元旦晚会活动方案
2014/12/09 职场文书
民事辩护词范文
2015/05/21 职场文书
python实现调用摄像头并拍照发邮箱
2021/04/27 Python
laravel添加角色和模糊搜索功能的实现代码
2021/06/22 PHP
springboot临时文件存储目录配置方式
2021/07/01 Java/Android
使用CSS实现小三角边框原理解析
2021/11/07 HTML / CSS
Win10服务全部禁用了怎么启动?Win10服务全部禁用解决方法
2022/09/23 数码科技