php判斷當(dāng)前操作系統(tǒng)類型
如何使用php獲取當(dāng)前操作系統(tǒng)類型呢?嚴(yán)格來說這里分兩種情況,一種情況是獲取服務(wù)器端的操作系統(tǒng)類型,一種是獲取客戶端的操作系統(tǒng)類型。下面作者將對如何使用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面向?qū)ο蟪绦蛟O(shè)計(jì)(OOP)之方法重寫(override)操作示例
這篇文章主要介紹了PHP面向?qū)ο蟪绦蛟O(shè)計(jì)(OOP)之方法重寫(override)操作,簡單描述了php面向?qū)ο蟪绦蛟O(shè)計(jì)中方法重寫的原理,并結(jié)合實(shí)例形式分析了php方法重寫相關(guān)實(shí)現(xiàn)技巧與注意事項(xiàng),需要的朋友可以參考下2018-12-12
php+jQuery遞歸調(diào)用POST循環(huán)請求示例
這篇文章主要介紹了php+jQuery遞歸調(diào)用POST循環(huán)請求,結(jié)合實(shí)例形式分析了php+jQuery的ajax方法遞歸調(diào)用與json轉(zhuǎn)換技巧,需要的朋友可以參考下2016-10-10
PHP之生成GIF動(dòng)畫的實(shí)現(xiàn)方法
本篇文章是對PHP生成GIF動(dòng)畫的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06
paypal即時(shí)到賬php實(shí)現(xiàn)代碼
paypal即時(shí)到賬php實(shí)現(xiàn)代碼,需要的朋友可以參考下。2010-11-11
PHP面向?qū)ο笪宕笤瓌t之單一職責(zé)原則(SRP)詳解
這篇文章主要介紹了PHP面向?qū)ο笪宕笤瓌t之單一職責(zé)原則(SRP),結(jié)合實(shí)例形式詳細(xì)分析了單一職責(zé)原則(SRP)的概念、原理、定于與使用方法,需要的朋友可以參考下2018-04-04
PHP CURL post數(shù)據(jù)報(bào)錯(cuò) failed creating formpost data
我們有時(shí)候用curl上傳文件遇到failed creating formpost data的錯(cuò)誤,那具體是如何產(chǎn)生,又如何進(jìn)行處理解決呢,下面我們就來探討下2016-10-10

