php获取当前操作系统类型

如何使用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,函数代码如下:

  1. function getOS(){ 
  2.     $os=''
  3.     $Agent=$_SERVER['HTTP_USER_AGENT']; 
  4.     if (eregi('win',$Agent)&&strpos($Agent'95')){ 
  5.         $os='Windows 95'
  6.     }elseif(eregi('win 9x',$Agent)&&strpos($Agent'4.90')){ 
  7.         $os='Windows ME'
  8.     }elseif(eregi('win',$Agent)&&ereg('98',$Agent)){ 
  9.         $os='Windows 98'
  10.     }elseif(eregi('win',$Agent)&&eregi('nt 5.0',$Agent)){ 
  11.         $os='Windows 2000'
  12.     }elseif(eregi('win',$Agent)&&eregi('nt 6.0',$Agent)){ 
  13.         $os='Windows Vista'
  14.     }elseif(eregi('win',$Agent)&&eregi('nt 6.1',$Agent)){ 
  15.         $os='Windows 7'
  16.     }elseif(eregi('win',$Agent)&&eregi('nt 5.1',$Agent)){ 
  17.         $os='Windows XP'
  18.     }elseif(eregi('win',$Agent)&&eregi('nt',$Agent)){ 
  19.         $os='Windows NT'
  20.     }elseif(eregi('win',$Agent)&&ereg('32',$Agent)){ 
  21.         $os='Windows 32'
  22.     }elseif(eregi('linux',$Agent)){ 
  23.         $os='Linux'
  24.     }elseif(eregi('unix',$Agent)){ 
  25.         $os='Unix'
  26.     }else if(eregi('sun',$Agent)&&eregi('os',$Agent)){ 
  27.         $os='SunOS'
  28.     }elseif(eregi('ibm',$Agent)&&eregi('os',$Agent)){ 
  29.         $os='IBM OS/2'
  30.     }elseif(eregi('Mac',$Agent)&&eregi('PC',$Agent)){ 
  31.         $os='Macintosh'
  32.     }elseif(eregi('PowerPC',$Agent)){ 
  33.         $os='PowerPC'
  34.     }elseif(eregi('AIX',$Agent)){ 
  35.         $os='AIX'
  36.     }elseif(eregi('HPUX',$Agent)){ 
  37.         $os='HPUX'
  38.     }elseif(eregi('NetBSD',$Agent)){ 
  39.         $os='NetBSD'
  40.     }elseif(eregi('BSD',$Agent)){ 
  41.         $os='BSD'
  42.     }elseif(ereg('OSF1',$Agent)){ 
  43.         $os='OSF1'
  44.     }elseif(ereg('IRIX',$Agent)){ 
  45.         $os='IRIX'
  46.     }elseif(eregi('FreeBSD',$Agent)){ 
  47.         $os='FreeBSD'
  48.     }elseif($os==''){ 
  49.         $os='Unknown'
  50.     } 
  51.     return $os

转载请注明:代码家园 » php获取当前操作系统类型

评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)