PHP獲取用戶(hù)的瀏覽器與操作系統(tǒng)信息的代碼
1.用戶(hù)訪(fǎng)問(wèn)服務(wù)器時(shí),利用PHP的超級(jí)全局變量$_SERVER數(shù)組中字段['HTTP_USER_AGENT'] 獲取訪(fǎng)問(wèn)用戶(hù)的所有信息
我訪(fǎng)問(wèn)時(shí)的$_SERVER['HTTP_USER_AGENT'] 字符串 :
Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/533.2 (KHTML, like Gecko) Chrome/5.0.342.3 Safari/533.2
2.利用正則表達(dá)式匹配以上字符串,用戶(hù)的瀏覽器 操作系統(tǒng)信息
3.PHP根據(jù)匹配后的字符串(用戶(hù)的瀏覽器 操作系統(tǒng)信息),分配需要的CSS文件,JS等等…返回給用戶(hù)
我的瀏覽器 操作系統(tǒng)信息
Browser: Chrome 5.0
Platform: Windows 7
代碼如下:
<?php
//顯示訪(fǎng)問(wèn)用戶(hù)的瀏覽器信息
echo 'Browser: ' . determinebrowser($Agent) . '<BR>';
//顯示訪(fǎng)問(wèn)用戶(hù)的操作系統(tǒng)平臺(tái)
echo 'Platform: ' . determineplatform($Agent). '<BR>';
//正值表達(dá)式比對(duì)解析$_SERVER['HTTP_USER_AGENT']中的字符串 獲取訪(fǎng)問(wèn)用戶(hù)的瀏覽器的信息
function determinebrowser ($Agent) {
$browseragent=""; //瀏覽器
$browserversion=""; //瀏覽器的版本
if (ereg('MSIE ([0-9].[0-9]{1,2})',$Agent,$version)) {
$browserversion=$version[1];
$browseragent="Internet Explorer";
} else if (ereg( 'Opera/([0-9]{1,2}.[0-9]{1,2})',$Agent,$version)) {
$browserversion=$version[1];
$browseragent="Opera";
} else if (ereg( 'Firefox/([0-9.]{1,5})',$Agent,$version)) {
$browserversion=$version[1];
$browseragent="Firefox";
}else if (ereg( 'Chrome/([0-9.]{1,3})',$Agent,$version)) {
$browserversion=$version[1];
$browseragent="Chrome";
}
else if (ereg( 'Safari/([0-9.]{1,3})',$Agent,$version)) {
$browseragent="Safari";
$browserversion="";
}
else {
$browserversion="";
$browseragent="Unknown";
}
return $browseragent." ".$browserversion;
}
// 同理獲取訪(fǎng)問(wèn)用戶(hù)的瀏覽器的信息
function determineplatform ($Agent) {
$browserplatform=='';
if (eregi('win',$Agent) && strpos($Agent, '95')) {
$browserplatform="Windows 95";
}
elseif (eregi('win 9x',$Agent) && strpos($Agent, '4.90')) {
$browserplatform="Windows ME";
}
elseif (eregi('win',$Agent) && ereg('98',$Agent)) {
$browserplatform="Windows 98";
}
elseif (eregi('win',$Agent) && eregi('nt 5.0',$Agent)) {
$browserplatform="Windows 2000";
}
elseif (eregi('win',$Agent) && eregi('nt 5.1',$Agent)) {
$browserplatform="Windows XP";
}
elseif (eregi('win',$Agent) && eregi('nt 6.0',$Agent)) {
$browserplatform="Windows Vista";
}
elseif (eregi('win',$Agent) && eregi('nt 6.1',$Agent)) {
$browserplatform="Windows 7";
}
elseif (eregi('win',$Agent) && ereg('32',$Agent)) {
$browserplatform="Windows 32";
}
elseif (eregi('win',$Agent) && eregi('nt',$Agent)) {
$browserplatform="Windows NT";
}elseif (eregi('Mac OS',$Agent)) {
$browserplatform="Mac OS";
}
elseif (eregi('linux',$Agent)) {
$browserplatform="Linux";
}
elseif (eregi('unix',$Agent)) {
$browserplatform="Unix";
}
elseif (eregi('sun',$Agent) && eregi('os',$Agent)) {
$browserplatform="SunOS";
}
elseif (eregi('ibm',$Agent) && eregi('os',$Agent)) {
$browserplatform="IBM OS/2";
}
elseif (eregi('Mac',$Agent) && eregi('PC',$Agent)) {
$browserplatform="Macintosh";
}
elseif (eregi('PowerPC',$Agent)) {
$browserplatform="PowerPC";
}
elseif (eregi('AIX',$Agent)) {
$browserplatform="AIX";
}
elseif (eregi('HPUX',$Agent)) {
$browserplatform="HPUX";
}
elseif (eregi('NetBSD',$Agent)) {
$browserplatform="NetBSD";
}
elseif (eregi('BSD',$Agent)) {
$browserplatform="BSD";
}
elseif (ereg('OSF1',$Agent)) {
$browserplatform="OSF1";
}
elseif (ereg('IRIX',$Agent)) {
$browserplatform="IRIX";
}
elseif (eregi('FreeBSD',$Agent)) {
$browserplatform="FreeBSD";
}
if ($browserplatform=='') {$browserplatform = "Unknown"; }
return $browserplatform;
}
?>
- PHP下利用header()函數(shù)設(shè)置瀏覽器緩存的代碼
- 使用php判斷瀏覽器的類(lèi)型和語(yǔ)言的函數(shù)代碼
- php禁止直接從瀏覽器輸入地址訪(fǎng)問(wèn).php文件的方法
- 使用PHP curl模擬瀏覽器抓取網(wǎng)站信息
- PHP計(jì)劃任務(wù)之關(guān)閉瀏覽器后仍然繼續(xù)執(zhí)行的函數(shù)
- PHP限制頁(yè)面只能在微信自帶瀏覽器訪(fǎng)問(wèn)的代碼
- PHP實(shí)現(xiàn)提取一個(gè)圖像文件并在瀏覽器上顯示的代碼
- PHP curl模擬瀏覽器采集阿里巴巴的實(shí)現(xiàn)代碼
- php中修改瀏覽器的User-Agent來(lái)偽裝你的瀏覽器和操作系統(tǒng)
- php獲取訪(fǎng)問(wèn)者瀏覽頁(yè)面的瀏覽器類(lèi)型
相關(guān)文章
PHP與SQL語(yǔ)句寫(xiě)一句話(huà)木馬總結(jié)
在本篇文章里小編給大家整理的是關(guān)于PHP與SQL語(yǔ)句寫(xiě)一句話(huà)木馬的相關(guān)知識(shí)點(diǎn),有需要的朋友們學(xué)習(xí)下。2019-10-10
PHP函數(shù)按引用傳遞參數(shù)及函數(shù)可選參數(shù)用法示例
這篇文章主要介紹了PHP函數(shù)按引用傳遞參數(shù)及函數(shù)可選參數(shù)用法,結(jié)合實(shí)例形式分析了php函數(shù)的引用傳參與可選參數(shù)具體使用技巧與注意事項(xiàng),需要的朋友可以參考下2018-06-06
PHP觀(guān)察者模式實(shí)例分析【對(duì)比JS觀(guān)察者模式】
這篇文章主要介紹了PHP觀(guān)察者模式,結(jié)合實(shí)例形式對(duì)比分析JS觀(guān)察者模式實(shí)現(xiàn)方法,給出了php觀(guān)察者模式的完整定義與使用操作示例,需要的朋友可以參考下2019-05-05
javascript,php獲取函數(shù)參數(shù)對(duì)象的代碼
javascript,php獲取函數(shù)參數(shù)對(duì)象的代碼,需要的朋友可以參考下。2011-02-02
php中實(shí)現(xiàn)進(jìn)程鎖與多進(jìn)程的方法
這篇文章給大家介紹了單進(jìn)程的情況的進(jìn)程鎖實(shí)現(xiàn)、進(jìn)程鎖實(shí)現(xiàn)多進(jìn)程、進(jìn)程鎖在yii2中的實(shí)現(xiàn)以及殺死進(jìn)程的命令,有需要的朋友們可以參考借鑒,下面來(lái)一起看看吧。2016-09-09
php中的路徑問(wèn)題與set_include_path使用介紹
這篇文章主要介紹了php中的路徑問(wèn)題與set_include_path,需要的朋友可以參考下2014-02-02
解決File size limit exceeded 錯(cuò)誤的方法
本篇文章是對(duì)File size limit exceeded 錯(cuò)誤進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06
PHP使用imagick擴(kuò)展實(shí)現(xiàn)合并圖像的方法
這篇文章主要介紹了PHP使用imagick擴(kuò)展實(shí)現(xiàn)合并圖像的方法,結(jié)合實(shí)例形式分析了php基于imagick擴(kuò)展處理圖片的具體步驟與相關(guān)操作技巧,需要的朋友可以參考下2017-04-04

