php獲得客戶端瀏覽器名稱及版本的方法(基于ECShop函數(shù))
本文實(shí)例講述了php獲得客戶端瀏覽器名稱及版本的方法。分享給大家供大家參考,具體如下:
看到ecshop中有這么一個(gè)函數(shù)get_user_browser(),獲取瀏覽器的名稱和版本。雖然獲取的信息只是簡(jiǎn)單的一些信息,但是還是很實(shí)用。其原理主要是通過$_SERVER['HTTP_USER_AGENT']獲得瀏覽器信息,再用正則進(jìn)行比對(duì)得出瀏覽器的信息。
以下是各瀏覽器運(yùn)行的效果:



源碼如下:
<?php
function get_user_browser()
{
if (empty($_SERVER['HTTP_USER_AGENT']))
{
return '';
}
$agent = $_SERVER['HTTP_USER_AGENT'];
$browser = '';
$browser_ver = '';
if (preg_match('/MSIE\s([^\s|;]+)/i', $agent, $regs))
{
$browser = 'Internet Explorer';
$browser_ver = $regs[1];
}
elseif (preg_match('/FireFox\/([^\s]+)/i', $agent, $regs))
{
$browser = 'FireFox';
$browser_ver = $regs[1];
}
elseif (preg_match('/Maxthon/i', $agent, $regs))
{
$browser = '(Internet Explorer ' .$browser_ver. ') Maxthon';
$browser_ver = '';
}
elseif (preg_match('/Opera[\s|\/]([^\s]+)/i', $agent, $regs))
{
$browser = 'Opera';
$browser_ver = $regs[1];
}
elseif (preg_match('/OmniWeb\/(v*)([^\s|;]+)/i', $agent, $regs))
{
$browser = 'OmniWeb';
$browser_ver = $regs[2];
}
elseif (preg_match('/Netscape([\d]*)\/([^\s]+)/i', $agent, $regs))
{
$browser = 'Netscape';
$browser_ver = $regs[2];
}
elseif (preg_match('/safari\/([^\s]+)/i', $agent, $regs))
{
$browser = 'Safari';
$browser_ver = $regs[1];
}
elseif (preg_match('/NetCaptor\s([^\s|;]+)/i', $agent, $regs))
{
$browser = '(Internet Explorer ' .$browser_ver. ') NetCaptor';
$browser_ver = $regs[1];
}
elseif (preg_match('/Lynx\/([^\s]+)/i', $agent, $regs))
{
$browser = 'Lynx';
$browser_ver = $regs[1];
}
if (!empty($browser))
{
return addslashes($browser . ' ' . $browser_ver);
}
else
{
return 'Unknow browser';
}
}
echo get_user_browser();
?>
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。
相關(guān)文章
php性能分析之php-fpm慢執(zhí)行日志slow log用法淺析
這篇文章主要介紹了php性能分析之php-fpm慢執(zhí)行日志slow log用法,結(jié)合實(shí)例形式分析了php慢執(zhí)行日志的功能與相關(guān)使用技巧,需要的朋友可以參考下2016-10-10
如何利用php array_multisort函數(shù) 對(duì)數(shù)據(jù)庫結(jié)果進(jìn)行復(fù)雜排序
本篇文章是對(duì)用php array_multisort函數(shù)對(duì)數(shù)據(jù)庫結(jié)果進(jìn)行復(fù)雜排序進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06
php代碼中使用換行及(\n或\r\n和br)的應(yīng)用
瀏覽器識(shí)別不了\n或\r\n,這兩個(gè)換行符是文本換行符,文本文件有效;如果需要將結(jié)果輸出到瀏覽器或打印到顯示器,代碼中使用br;如果只是在源代碼中換行,則使用\n或\r\n,感興趣的朋友可以了解下,或許對(duì)你學(xué)習(xí)php有所幫助2013-02-02
php array_map array_multisort 高效處理多維數(shù)組排序
用array_map和array_multisort高效處理多維數(shù)組排序的實(shí)現(xiàn)代碼。2009-06-06
php調(diào)用nginx的mod_zip模塊打包ZIP文件
這篇文章主要介紹了php調(diào)用nginx的mod_zip模塊打包ZIP文件,需要的朋友可以參考下2014-06-06

