[精讚] [會員登入]
532

[PHP] 使用browscap檢查瀏覽器版本

使用PHP內建函數browscap檢查瀏覽器版本

此文完整連結 http://n.sfs.tw/11024

複製連結 [PHP] 使用browscap檢查瀏覽器版本@新精讚
(文章歡迎轉載,務必尊重版權註明連結來源)
2017-05-01 11:48:01 最後編修
2017-05-01 10:50:16 By 張○○
 

PHP 手冊中有檢查瀏覽器版本的函數 get_browser()

但這個函數沒經過設定是無法使用的

echo $_SERVER['HTTP_USER_AGENT'];
echo "<br/>"; 
// 第一個參數可以指定user agent,第二個參數設為true回傳陣列,否則回傳物件
$browser = get_browser(null, true);
print_r($browser);

執行

Mozilla/5.0 (Windows NT 6.1; WOW64; rv:53.0) Gecko/20100101 Firefox/53.0
Warning: get_browser(): browscap ini directive not set in xxx.php

設定

一、下載 browscap.ini

http://browscap.org/

可選下載PHP browscap.ini的版本有輕量版、完整版或一般版本 ,此檔必須手動更新,以免新版本的瀏覽器無法辨識。

# cd /etc/php.d/
# wget http://browscap.org/stream?q=PHP_BrowsCapINI -O browscap.ini

二、修改 php.ini ,我使用絕對路徑,以免出現錯誤

尋找[browscap]這個tab,加入一行

[browscap]
browscap = /etc/php.d/browscap.ini

重新啟動 APACHE

三、重新執行

我下載完整版本後執行的結果

Mozilla/5.0 (Windows NT 6.1; WOW64; rv:53.0) Gecko/20100101 Firefox/53.0 0
Array ( [browser_name_regex] => ~^mozilla/5\.0 \(.*windows nt 6\.1.*wow64.*\) gecko.* firefox/53\.0.*$~ [browser_name_pattern] => Mozilla/5.0 (*Windows NT 6.1*WOW64*) Gecko* Firefox/53.0* [parent] => Firefox 53.0 [browser_bits] => 32 [platform] => Win7 [platform_version] => 6.1 [platform_description] => Windows 7 [platform_bits] => 64 [platform_maker] => Microsoft Corporation [win64] => 1 [device_name] => Windows Desktop [device_code_name] => Windows Desktop [comment] => Firefox 53.0 [browser] => Firefox [browser_type] => Browser [browser_maker] => Mozilla Foundation [version] => 53.0 [majorver] => 53 [frames] => 1 [iframes] => 1 [tables] => 1 [cookies] => 1 [javascript] => 1 [javaapplets] => 1 [cssversion] => 3 [device_type] => Desktop [device_pointing_method] => mouse [renderingengine_name] => Gecko [renderingengine_version] => 53.0 [renderingengine_description] => For Firefox, Camino, K-Meleon, SeaMonkey, Netscape, and other Gecko-based browsers. [renderingengine_maker] => Mozilla Foundation [browser_modus] => unknown [minorver] => 0 [alpha] => [beta] => [win16] => [win32] => [backgroundsounds] => [vbscript] => [activexcontrols] => [ismobiledevice] => [istablet] => [issyndicationreader] => [crawler] => [isfake] => [isanonymized] => [ismodified] => [aolversion] => 0 [device_maker] => unknown [device_brand_name] => unknown )

相當的詳細

參考資料

[1] Rewi Blog http://rewgaz.wordpress.com/2012/11/20/howto-install-and-use-browscap-respectively-get_browser-for-php-on-ubuntu-debian/

[2] PHP Warning:  Cannot open 'extra/browscap.ini' for reading in Unknown on line 0

此錯誤發生原因為 php.ini的設定檔指定的 browscap.ini找不到,請將他設為絕對路徑或註解掉";"可解決。

[3] PHP函式手冊 http://php.net/manual/en/function.get-browser.php


原文編修 2013-08-31 01:04:41

你可能感興趣的文章

[PHP] 處理mail 函式的標題中文字亂碼 PHP的mail函式若標題有中文字得先處理過,否則收信者會看到亂碼

[PHP] 2個程式的觀念 整理2個PHP的程式觀念,參考參考。

[PHP] UTF8中取出字串中特定的字數 要將字串,例如資料庫取出的TEXT,取出特定的字數

[PHP] 將UTF8中文字轉成10進位或16進位數值 原本為了處理 preg_match 中文字的問題[2],用php把中文字轉換成10進位和6進位的數值編碼

[PHP] 判斷文字、數字、文字加數字的方法 幾個PHP數字和文字操作上的小眉角:判斷文字、數字、文字加數字的方法

[CodeIgniter 3] 自寫找不到頁面(page404)的方法 使用CI3框架中如果找不到頁面,就會導到一個自定的404頁面,該怎麼做?

[PHP] 如何寫callback function 召回函數(回呼函數) PHP如何寫召回函數或回呼函數(callback function)?

PHP 產生連續的日期 要用PHP產生連續的日期,連續月份

[PHP] 位元運算 (Bitwise operation)及和PERL比較 PHP 的位元運算,及和PERL比較整理

[PHP] 字串編碼及解碼函式 為何要將字串編碼?理由很簡單,就是不要讓人家輕易的知道字串內容是什麼。例如點選分頁時,我們常會用這樣的連結: index

我有話要說


限制:留言最高字數1000字,超過部分會被截掉。請注意:留言不可帶有網址,會被濾掉。 限制:未登入訪客,每則留言間隔需超過10分鐘,每日最多5則留言。

訪客留言

[無留言]

隨機好文

[jQuery] select 元件的取值及給值 html中的元件select,在jquery中要如何使用?

[Windows7] 移除IE10及移除IE11 Windows7 不得已的情況要移除IE11或IE10怎麼做?

一個邏輯的錯誤刪了全部檔案的經驗 今天本來想做一件很簡單的事,但卻足足浪費我多一倍的時間,再加上刪掉我全部的檔案,原因只是因為我自己的邏輯錯誤。

正則表達式:Email名稱防止連續輸入點(.)及下底線(_) Email的名稱中要允許特殊符號,但又不允許連續出現的正則表達式

[Bootstrap] Datepicker使用/Bootstrap日期選日期選擇器的使用 Bootstrap日期選日期選擇器的使用