如何使用 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 (没有列在Wikipedia)

不过根据具体情况读者还是自行打印出来结果看看最好,也许获得的结果不在上述之列。

(2)php获取客户端的操作系统类型,这里分享一个函数,比网上流传的那些判断更加精准,而且没有bug,函数代码如下:

function getOS(){
$os='';
$Agent=$_SERVER['HTTP_USER_AGENT'];
if (eregi('win',$Agent)&&strpos($Agent, '')){
$os='Windows 95';
}elseif(eregi('win 9x',$Agent)&&strpos($Agent, '4.90')){
$os='Windows ME';
}elseif(eregi('win',$Agent)&&ereg('',$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('',$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获取当前操作系统类型的更多相关文章

  1. Java 获取当前系统的操作系统类型

    版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/fangchao2011/article/d ...

  2. H5案例分享:使用JS判断客户端、浏览器、操作系统类型

    使用JS判断客户端.浏览器.操作系统类型 一.JS判断客户端类型 JS判断客户端是否是iOS或者Android手机移动端 通过判断浏览器的userAgent,用正则来判断手机是否是ios和Androi ...

  3. Java 判断操作系统类型(适用于各种操作系统)

    Java 判断操作系统类型(适用于各种操作系统) 最近一段时间写一个授权的程序,需要获取很多信息来保证程序不能随意复制使用,必须经过授权才可以. 为了限制用户使用的操作系统,必须有统一的方法来获取才可 ...

  4. 使用JS判断客户端、浏览器、操作系统类型

    一.JS判断客户端类型 JS判断客户端是否是iOS或者Android手机移动端 通过判断浏览器的userAgent,用正则来判断手机是否是ios和Android客户端. 核心代码如下: 方法一: &l ...

  5. JavaScript使用构造函数获取变量的类型名

    在JavaScript中,如何准确获取变量的类型名是一个经常使用的问题. 但是常常不能获取到变量的精确名称,或者必须使用jQuery 中的方法,这里 我通过 typeof ,jQuery.type 和 ...

  6. java获取获得Timestamp类型的当前系统时间。以及java.util.date 、java.sql.Date之间的转换

    java获取取得Timestamp类型的当前系统时间java获取取得Timestamp类型的当前系统时间 格式:2010-11-04 16:19:42 方法1: Timestamp d = new T ...

  7. java获取获得Timestamp类型的当前系统时间

    java获取取得Timestamp类型的当前系统时间java获取取得Timestamp类型的当前系统时间 格式:2010-11-04 16:19:42 方法1: Timestamp d = new T ...

  8. java获取获得Timestamp类型的当前系统时间。

    java获取获得Timestamp类型的当前系统时间.   java获取取得Timestamp类型的当前系统时间 格式:2010-11-04 16:19:42 方法1: Timestamp d = n ...

  9. php获取文件mime类型Fileinfo等方法

    前几天写到使用wordpress xmlrpc api远程发布文章,如果本地服务器的文章库里某一篇待发表的wordpress文章包含图片文件时,就会使用到WordPress上传文件的API metaW ...

随机推荐

  1. 第1章 .Net应用程序体系结构

    1. CLR:公共语言运行库,是每种.Net编程语言都使用的运行库 Windows 8为Windows Store应用程序引入了一个新的编程接口:Windows运行库. C# 6 具有许多小而实用的语 ...

  2. MVC 控制器向View传值的三种方法(转)

    1.提供视图模型对象 你能把一个对象作为View方法的参数传递给视图. public ViewResult Index() { DateTime date = DateTime.Now; return ...

  3. World Wind Java开发之十——AnalyticSurface栅格渲染(转)

    http://blog.csdn.net/giser_whu/article/details/43017881 1.AnalyticSurfaceDemo ArcGIS下对栅格的各种分级渲染效果是非常 ...

  4. ubuntu or centos 网卡无法启动

    [root@seasoned-bro:/home/daeh0f]# /etc/init.d/network restart Restarting network (via systemctl): Jo ...

  5. 求最大公约数和最小公倍数_python

    """写两个函数,分别求两个整数的最大公约数和最小公倍数,调用这两个函数,并输出结果.两个整数由键盘输入.""" ''' 设两个整数u和v, ...

  6. git常用命令以及速查命令

    工作中使用的是git,所以写这个只是为了加深自己的记忆,提高熟练度 共勉~ git 主要命令 要关联一个远程库,使用命令git remote add origin git@server-name:pa ...

  7. Vue源码学习二 ———— Vue原型对象包装

    Vue原型对象的包装 在Vue官网直接通过 script 标签导入的 Vue包是 umd模块的形式.在使用前都通过 new Vue({}).记录一下 Vue构造函数的包装. 在 src/core/in ...

  8. 第28题:leetcode101:Symmetric Tree对称的二叉树

    给定一个二叉树,检查它是否是镜像对称的. 例如,二叉树 [1,2,2,3,4,4,3] 是对称的. 1 / \ 2 2 / \ / \ 3 4 4 3 但是下面这个 [1,2,2,null,3,nul ...

  9. 一、Shell 教程

    Shell 教程 Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁.Shell 既是一种命令语言,又是一种程序设计语言. Shell 是指一种应用程序,这个应用程序提供了一个 ...

  10. 在基于vue-cli的项目自定义打包环境

    在工作当中,遇到了下面这个问题: 测试环境与生产环境中的用户权限不一样,因此,就需要根据测试环境打一个包,生产环境又打一个包.可是,如果每次打包都需要更改权限的配置文件的话,会很麻烦,而且,体现不出一 ...