PHP判斷瀏覽器、判斷語言代碼分享
PHP編程中經(jīng)常需要用到一些服務(wù)器的一些資料,特把$_SERVER的詳細(xì)參數(shù)整理下,方便以后使用。
判斷瀏覽器類型
//判斷類型 <?php if(strpos($_SERVER["HTTP_USER_AGENT"],"MSIE 8.0")) echo "Internet Explorer 8.0"; else if(strpos($_SERVER["HTTP_USER_AGENT"],"MSIE 7.0")) echo "Internet Explorer 7.0"; else if(strpos($_SERVER["HTTP_USER_AGENT"],"MSIE 6.0")) echo "Internet Explorer 6.0"; else if(strpos($_SERVER["HTTP_USER_AGENT"],"Firefox/3")) echo "Firefox 3"; else if(strpos($_SERVER["HTTP_USER_AGENT"],"Firefox/2")) echo "Firefox 2"; else if(strpos($_SERVER["HTTP_USER_AGENT"],"Chrome")) echo "Google Chrome"; else if(strpos($_SERVER["HTTP_USER_AGENT"],"Safari")) echo "Safari"; else if(strpos($_SERVER["HTTP_USER_AGENT"],"Opera")) echo "Opera"; else echo $_SERVER["HTTP_USER_AGENT"]; ?>
判斷語言
<?php $lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 4); //只取前4位,這樣只判斷最優(yōu)先的語言。如果取前5位,可能出現(xiàn)en,zh的情況,影響判斷。 if (preg_match("/zh-c/i", $lang)) echo "簡(jiǎn)體中文"; else if (preg_match("/zh/i", $lang)) echo "繁體中文"; else if (preg_match("/en/i", $lang)) echo "English"; else if (preg_match("/fr/i", $lang)) echo "French"; else if (preg_match("/de/i", $lang)) echo "German"; else if (preg_match("/jp/i", $lang)) echo "Japanese"; else if (preg_match("/ko/i", $lang)) echo "Korean"; else if (preg_match("/es/i", $lang)) echo "Spanish"; else if (preg_match("/sv/i", $lang)) echo "Swedish"; else echo $_SERVER["HTTP_ACCEPT_LANGUAGE"]; ?>
判斷瀏覽器內(nèi)核的PHP程序
<?php error_reporting(E_ALL & ~ E_NOTICE); class clientGetObj { function getBrowse() { global $_SERVER; $Agent = $_SERVER['HTTP_USER_AGENT']; $browser = ''; $browserver = ''; $Browser = array('Lynx', 'MOSAIC', 'AOL', 'Opera', 'JAVA', 'MacWeb', 'WebExplorer', 'OmniWeb'); for($i = 0; $i <= 7; $i ++){ if(strpos($Agent, $Browsers[$i])){ $browser = $Browsers[$i]; $browserver = ''; } } if(preg_match('/Mozilla/', $Agent) && !preg_match('/MSIE/', $Agent)){ $temp = explode('(', $Agent); $Part = $temp[0]; $temp = explode('/', $Part); $browserver = $temp[1]; $temp = explode(' ', $browserver); $browserver = $temp[0]; $browserver = preg_replace('/([d.]+)/', '1', $browserver); $browserver = $browserver; $browser = 'Netscape Navigator'; } if(preg_match('/Mozilla/', $Agent) && preg_match('/Opera/', $Agent)) { $temp = explode('(', $Agent); $Part = $temp[1]; $temp = explode(')', $Part); $browserver = $temp[1]; $temp = explode(' ', $browserver); $browserver = $temp[2]; $browserver = preg_replace('/([d.]+)/', '1', $browserver); $browserver = $browserver; $browser = 'Opera'; } if(preg_match('/Mozilla/', $Agent) && preg_match('/MSIE/', $Agent)){ $temp = explode('(', $Agent); $Part = $temp[1]; $temp = explode(';', $Part); $Part = $temp[1]; $temp = explode(' ', $Part); $browserver = $temp[2]; $browserver = preg_replace('/([d.]+)/','1',$browserver); $browserver = $browserver; $browser = 'Internet Explorer'; } if($browser != ''){ $browseinfo = $browser.' '.$browserver; } else { $browseinfo = false; } return $browseinfo; } function getIP () { global $_SERVER; if (getenv('HTTP_CLIENT_IP')) { $ip = getenv('HTTP_CLIENT_IP'); } else if (getenv('HTTP_X_FORWARDED_FOR')) { $ip = getenv('HTTP_X_FORWARDED_FOR'); } else if (getenv('REMOTE_ADDR')) { $ip = getenv('REMOTE_ADDR'); } else { $ip = $_SERVER['REMOTE_ADDR']; } return $ip; } function getOS () { global $_SERVER; $agent = $_SERVER['HTTP_USER_AGENT']; $os = false; if (preg_match('/win/', $agent) && strpos($agent, '95')){ $os = 'Windows 95'; } else if (preg_match('/win 9x/', $agent) && strpos($agent, '4.90')){ $os = 'Windows ME'; } else if (preg_match('/win/', $agent) && preg_match('98', $agent)){ $os = 'Windows 98'; } else if (preg_match('/win/', $agent) && preg_match('nt 5.1', $agent)){ $os = 'Windows XP'; } else if (preg_match('/win/', $agent) && preg_match('nt 5', $agent)){ $os = 'Windows 2000'; } else if (preg_match('/win/', $agent) && preg_match('nt', $agent)){ $os = 'Windows NT'; } else if (preg_match('/win/', $agent) && preg_match('32', $agent)){ $os = 'Windows 32'; } else if (preg_match('/linux/', $agent)){ $os = 'Linux'; } else if (preg_match('/unix/', $agent)){ $os = 'Unix'; } else if (preg_match('/sun/', $agent) && preg_match('os', $agent)){ $os = 'SunOS'; } else if (preg_match('/ibm/', $agent) && preg_match('os', $agent)){ $os = 'IBM OS/2'; } else if (preg_match('/Mac/', $agent) && preg_match('PC', $agent)){ $os = 'Macintosh'; } else if (preg_match('/PowerPC/', $agent)){ $os = 'PowerPC'; } else if (preg_match('/AIX/', $agent)){ $os = 'AIX'; } else if (preg_match('/HPUX/', $agent)){ $os = 'HPUX'; } else if (preg_match('/NetBSD/', $agent)){ $os = 'NetBSD'; } else if (preg_match('/BSD/', $agent)){ $os = 'BSD'; } else if (preg_match('/OSF1/', $agent)){ $os = 'OSF1'; } else if (preg_match('/IRIX/', $agent)){ $os = 'IRIX'; } else if (preg_match('/FreeBSD/', $agent)){ $os = 'FreeBSD'; } else if (preg_match('/teleport/', $agent)){ $os = 'teleport'; } else if (preg_match('/flashget/', $agent)){ $os = 'flashget'; } else if (preg_match('/webzip/', $agent)){ $os = 'webzip'; } else if (preg_match('/offline/', $agent)){ $os = 'offline'; } else { $os = 'Unknown'; } return $os; } } $code = new clientGetObj; echo $str1 = $code->getBrowse()."<br>";//瀏覽器: echo $str2 = $code->getIP()."<br>";//IP地址: echo $str3 = $code->getOS();//操作系統(tǒng): ?>
以上就是個(gè)人整理的關(guān)于$_SERVER獲取服務(wù)器信息的常用信息了,希望大家能夠喜歡。
相關(guān)文章
PHP超級(jí)全局變量、魔術(shù)變量和魔術(shù)函數(shù)匯總整理
這篇文章主要介紹了PHP超級(jí)全局變量、魔術(shù)變量和魔術(shù)函數(shù)匯總整理,有需要的同學(xué)可以看下2021-02-02PHP使用curl_multi實(shí)現(xiàn)并發(fā)請(qǐng)求的方法示例
這篇文章主要介紹了PHP使用curl_multi實(shí)現(xiàn)并發(fā)請(qǐng)求的方法,結(jié)合實(shí)例形式分析了php封裝curl_multi實(shí)現(xiàn)的并發(fā)請(qǐng)求相關(guān)操作技巧,需要的朋友可以參考下2018-04-04PHP數(shù)組操作實(shí)例分析【添加,刪除,計(jì)算,反轉(zhuǎn),排序,查找等】
這篇文章主要介紹了PHP數(shù)組操作,結(jié)合實(shí)例形式分析php針對(duì)數(shù)組的添加,刪除,計(jì)算,反轉(zhuǎn),排序,查找等操作實(shí)現(xiàn)技巧,需要的朋友可以參考下2016-12-12ThinkPHP使用心得分享-上傳類UploadFile的使用
ThinkPHP中的UploadFile類用于處理文件上傳,本文小總結(jié)了一下關(guān)于學(xué)習(xí)過程中對(duì)UploadFile類的使用方法。2014-05-05PHP網(wǎng)站基礎(chǔ)優(yōu)化方法小結(jié)
以下這些基礎(chǔ)技巧可以讓你的PHP網(wǎng)站運(yùn)行得更快一些。2008-09-09php數(shù)組函數(shù)序列之a(chǎn)rray_pop() - 刪除數(shù)組中的最后一個(gè)元素
定義和用法array_pop() 函數(shù)刪除數(shù)組中的最后一個(gè)元素。2011-11-11PHP日期時(shí)間函數(shù)的高級(jí)應(yīng)用技巧
PHP的日期時(shí)間函數(shù)date()中介紹了PHP日期時(shí)間函數(shù)的簡(jiǎn)單用法,這類將介紹更多的函數(shù)來豐富我們的應(yīng)用。2009-05-05