如何使用 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. GetIPAddress——获得本地IP地址信息

    1.gethostname()需要初始化套接字库 加载#pragma comment(lib,"ws2_32.lib"),和WSAStartup(MAKEWORD(2,2),&am ...

  2. libav(ffmpeg)简明教程(1)

    突然发现又有好久没有写技术blog了,主要原因是最近时间都用来研究libav去了(因为api极类似ffmpeg,虽然出自同一份代码的另外一个分支,因项目选用libav,故下文均用libav代替),其实 ...

  3. SQL Server Profiler查询跟踪的简单使用

    1.打开SQL Server Management Studio,选择工具->SQL Server Profiler,或者直接从路径:开始/程序/Microsoft SQL Server 200 ...

  4. 回归树的原理及Python实现

    大名鼎鼎的 GBDT 算法就是用回归树组合而成的.本文就回归树的基本原理进行讲解,并手把手.肩并肩地带您实现这一算法. 1. 原理篇 1.1 最简单的模型 如果预测某个连续变量的大小,最简单的模型之一 ...

  5. Feign + Hystrix 服务熔断和服务降级

    本机IP为  192.168.1.102 1.    新建 Maven 项目   feign 2.   pom.xml <project xmlns="http://maven.apa ...

  6. js 数组方法大集合,各方法是否改变原有的数组详解

    不会改变原来数组的有: concat()---连接两个或更多的数组,并返回结果. every()---检测数组元素的每个元素是否都符合条件. some()---检测数组元素中是否有元素符合指定条件. ...

  7. AJAX Control Toolkit的AsynFileUpload控件资料收集

    基于AJAX的文件上传显示进度条实现 http://plkong.iteye.com/blog/238159 asp.net ajax AjaxFileUpload使用 多文件上传 http://bl ...

  8. 多页应用 Webpack4 配置优化与踩坑记录

    前言 最近新起了一个多页项目,之前都未使用 webpack4 ,于是准备上手实践一下.这篇文章主要就是一些配置介绍,对于正准备使用 webpack4 的同学,可以做一些参考. webpack4 相比之 ...

  9. nodejs实现前后端交互

    本人nodejs入门级选手,站在巨人(文殊)的肩膀上学习了一些相关知识,有幸在项目中使用nodejs实现了前后端交互,因此,将整个交互过程记录下来,方便以后学习. 本文从宏观讲述nodejs实现前后端 ...

  10. 读书笔记3(Teamwork)

    今天我阅读了<构建之法>的第四章——两人合作,它主要讲述了在两人合作进行项目时与单人作业时的区别与不同,其中最重要的就是代码规范.代码规范:我们写的代码虽然是电脑运行,但是最终还是给人看的 ...