php判斷當前作業系統型別
阿新 • • 發佈:2019-01-10
如何使用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,函式程式碼如下:
根據伺服器端還是客戶端來決定採取的辦法,希望通過這篇文章大家知道如何使用php獲取當前作業系統型別。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; }