首頁 > 後端開發 > php教程 > php判斷客戶端瀏覽器的類型

php判斷客戶端瀏覽器的類型

巴扎黑
發布: 2016-11-22 15:32:34
原創
1925 人瀏覽過

1、透過 $_SERVER['HTTP_USER_AGENT'] 來寫一個php判斷瀏覽器類型的方法。

function my_get_browser(){
if(empty($_SERVER['HTTP_USER_AGENT'])){
return '命令列,機器人來了! ';
}
if(false!==strpos($_SERVER['HTTP_USER_AGENT'],'MSIE 9.0')){
return 'Internet Explorer 9.0';
}
if(false!==strpos($_SERVER[ 'HTTP_USER_AGENT'],'MSIE 8.0')){
return 'Internet Explorer 8.0';
}
if(false!==strpos($_SERVER['HTTP_USER_AGENT'],'MSIE 7.0')){Inter
return Explorer 7.0';
}
if(false!==strpos($_SERVER['HTTP_USER_AGENT'],'MSIE 6.0')){
return 'Internet Explorer 6.0';
}
if(false!==str( _SERVER['HTTP_USER_AGENT'],'Firefox')){
return 'Firefox';
}
if(false!==strpos($_SERVER['HTTP_USER_AGENT'],'Chrome')){
return 'Chrome';
}
if(false!==strpos($_SERVER['HTTP_USER_AGENT'],'Safari')){
return 'Safari';
}
if(false!==strpos($_SERVER['HTTP_US_ 'Opera')){
return 'Opera';
}
if(false!==strpos($_SERVER['HTTP_USER_AGENT'],'360SE')){
SE return '3600;
}
}
}

}

這裡主要用到了$_SERVER['HTTP_USER_AGENT'],這個常數是用來檢查瀏覽頁面的訪客在用什麼作業系統(包括版本號)瀏覽器(包括版本號)和使用者個人偏好。用法很簡單,自己在程式裡面印出來看看就懂了。

2、另外 php 判斷瀏覽器的類型也可以透過 php 系統函數 get_browser() 函數,這個函數將會傳回使用者瀏覽器的一些效能資料。此函式透過查閱使用者的 browscap.ini 文件,來測定使用者瀏覽器的效能。若成功,則函數傳回包含使用者瀏覽器資訊的一個物件或一個數組,若失敗,則傳回 false。

get_browser 語法

get_browser(user_agent,return_array)

這個函數有兩個參數,參數意義解釋如下:

user_agent 可選。規定 HTTP 用戶代理的名稱。預設是 $HTTP_USER_AGENT 的值。您可以透過設定 NULL 來繞過該參數。

return_array 可選。如果該參數設為 true,本函數會傳回一個陣列而不是物件。

對於php 透過$_SERVER['HTTP_USER_AGENT'] 和get_browser 取得的瀏覽器訊息,我們可以透過以下例子來認識:

echo $_SERVER['HTTP_USER_AGENT'] .echo $_SERVER['HTTP_USER_AGENT'] .";
$browser = get_browser(null,true);
print_r($browser);
?>

結果將輸出:


Mozilla/4.0

結果將輸出:

Mozilla/4.0

結果將輸出:

Mozilla/4.0
(compatible; ; .NET CLR 1.1.4322)

Array(
[browser_name_regex] => ^mozilla/..0
(compatible; msie 6.0.*;.*windows nt 5.1.*.netible; msie 6.0.*;.*windows nt 5.1.*.net clr.*).$net [browser_name_pattern] => Mozilla/?.0
(compatible; MSIE 6.0*;*Windows NT 5.1*.NET CLR*)*
[parent] => IE 6.0
[platform] => WinXP
[netclr] = 1
[browser] => IE
[version] => 6.0
[majorver] => 6
[minorver] => 0
[css] => 2
[frames] => 1
[css] => 2
[frames] => 1
[ifes] => 1rames] =
[tables] => 1
[cookies] => 1
[backgroundsounds] => 1
[vbscript] => 1
[javascript] => 1
[javaapplets] => 1
[javascript] => 1

[javaapplets] => 1

[javascript] => 1

] = [cdf] => 1

[aol] =>

[beta] =>🎜[win16] =>🎜[crawler] =>🎜[stripper] =>🎜[wap] =>🎜[ak] =>🎜[ sk] =>🎜)🎜🎜但是透過PHP的get_browser()函數取得客戶端瀏覽器相關資訊是有條件的,如果你直接使用一般會報出如下這個錯誤:🎜🎜Warning: get_browser() [function. get-browser]: browscap ini directive not set in ……🎜

透過查詢php 手冊,得到的解釋是:為了使用這個函數,你必須在php.ini檔案裡面增加一句指向browscap.ini 檔案的配置,browscap.ini檔案裡面記錄了所有已存在的瀏覽器的類型及其信息,所以你要下載最新的這個文件,下載browscap.ini後放到伺服器某個位置,get_browser()在使用時就是將獲取的客戶端信息與此文件進行對比,如果能找到,則返回相應類型。

由上看來要想使用 get_browser() 取得瀏覽器類型代價不小啊!

3、另外還有一種php判斷瀏覽器類型的辦法,就是使用一個國外牛人寫的開源程式碼。國外有個叫mavrick的網站,上面有關於瀏覽器的項目,一直更新所寫的Browser類,我最新看到的這個類可以獲取包括iPhone、BlackBerry、win、mac、linux、OS、BeOS等平台上的瀏覽器訊息,功能可以說是十分強大。下載這個檔案時要依照自己使用的PHP版本去選擇。這類的具體程式碼自己去下載研究:

browser-v1-9

 這個類別的使用方法也很簡單,如下:

$obj_browser = new Browser; //建立一個此類的一個實例
$obj_browser$obj_browser$obj_browser$obj_browser$obj_brow ->getBrowser(); //呼叫相關函數,取得瀏覽器名稱
$obj_browser->getPlatform(); //呼叫相關函數,取得系統名稱
$obj_browser->isMobile(); //判斷來訪者所用設備是iPhone、iPad或電腦(PC)


相關標籤:
php
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板