php判斷當(dāng)前操作系統(tǒng)類型
如何使用php獲取當(dāng)前操作系統(tǒng)類型呢?嚴(yán)格來說這里分兩種情況,一種情況是獲取服務(wù)器端的操作系統(tǒng)類型,一種是獲取客戶端的操作系統(tǒng)類型。下面作者將對(duì)如何使用php獲取這兩種情況下的操作系統(tǒng)類型和大家做一些分享。
(1)php獲取服務(wù)器端的操作系統(tǒng)類型
這個(gè)時(shí)候可以使用php系統(tǒng)自帶的常量 PHP_OS 或者系統(tǒng)函數(shù)php_uname('s')。關(guān)于這兩者返回的值可能的情況基本有如下幾種情況:
- 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
不過根據(jù)具體情況讀者還是自行打印出來結(jié)果看看最好,也許獲得的結(jié)果不在上述之列。
(2)php獲取客戶端的操作系統(tǒng)類型,這里分享一個(gè)函數(shù),比網(wǎng)上流傳的那些判斷更加精準(zhǔn),而且沒有bug,函數(shù)代碼如下:
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; }
根據(jù)服務(wù)器端還是客戶端來決定采取的辦法,希望通過這篇文章大家知道如何使用php獲取當(dāng)前操作系統(tǒng)類型。
相關(guān)文章
php+mysql開發(fā)的最簡(jiǎn)單在線題庫(kù)(在線做題系統(tǒng))完整案例
這篇文章主要介紹了php+mysql開發(fā)的最簡(jiǎn)單在線題庫(kù)(在線做題系統(tǒng))案例,結(jié)合完整實(shí)例形式分析了PHP結(jié)合MySQL數(shù)據(jù)庫(kù)查詢、判斷實(shí)現(xiàn)的在線題庫(kù)功能相關(guān)操作技巧,需要的朋友可以參考下2019-03-03php刪除頁(yè)面記錄 同時(shí)刷新頁(yè)面 刪除條件用GET方式獲得
在某個(gè)頁(yè)面上顯示查詢數(shù)據(jù),并在每條數(shù)據(jù)后增加刪除功能,點(diǎn)擊“刪除”,刪除掉數(shù)據(jù),同時(shí)刷新頁(yè)面2012-01-01php防注入,表單提交值轉(zhuǎn)義的實(shí)現(xiàn)詳解
本篇文章是對(duì)php防注入,表單提交值轉(zhuǎn)義的實(shí)現(xiàn)進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06php變量與JS變量實(shí)現(xiàn)不通過跳轉(zhuǎn)直接交互的方法
這篇文章主要介紹了php變量與JS變量實(shí)現(xiàn)不通過跳轉(zhuǎn)直接交互的方法,涉及php與javascript變量傳輸及代碼混編相關(guān)操作技巧,需要的朋友可以參考下2017-08-08解析PHP獲取當(dāng)前網(wǎng)址及域名的實(shí)現(xiàn)代碼
本篇文章是對(duì)PHP獲取當(dāng)前網(wǎng)址及域名的代碼進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06PHP針對(duì)中英文混合字符串長(zhǎng)度判斷及截取方法示例
這篇文章主要介紹了PHP針對(duì)中英文混合字符串長(zhǎng)度判斷及截取方法,結(jié)合實(shí)例形式分析了php中英文字符串的遍歷、轉(zhuǎn)換、截取、計(jì)算等相關(guān)操作技巧,需要的朋友可以參考下2017-03-03php中instanceof 與 is_a()區(qū)別分析
總的來說php中instanceof 與 is_a()功能是一樣的,不同的是由于PHP的版本不同,部分PHP版本舍棄了is_a() 下面我們來具體分析下吧。2015-03-03