判斷瀏覽器的類型$_SERVER['HTTP_USER_AGENT']和語言$_SERVER['HTTP_ACCEPT_LANGUAGE']


判斷瀏覽器類型:

$_SERVER["HTTP_USER_AGENT"]

判斷瀏覽器類型的具體程序如下:

<?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"]; ?>

 

判斷瀏覽器語言:

$_SERVER["HTTP_ACCEPT_LANGUAGE"]

判斷瀏覽器語言的具體程序如下:

<?php $lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 4); //只取前4位,這樣只判斷最優先的語言。如果取前5位,可能出現en,zh的情況,影響判斷。 
if (preg_match("/zh-c/i", $lang)) echo "簡體中文"; 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"]; ?>

關於上面正則的說明:

/u 表示按unicode(utf-8)匹配(主要針對多字節比如漢字)
/i 表示不區分大小寫(如果表達式里面有 a, 那么 A 也是匹配對象)
/s 表示將字符串視為單行來匹配

 

小結:判斷瀏覽器類型主要是靠分析$_SERVER["HTTP_USER_AGENT"]的內容,而分析瀏覽器語言則是分析$_SERVER["HTTP_ACCEPT_LANGUAGE"]

原理:因為瀏覽器在和服務器連接時候都會先發送一些包含自己信息的內容(瀏覽器類型、語言)。所以這里我們主要分析的是_SERVER["HTTP_USER_AGENT"](瀏覽器類型)和_SERVER["HTTP_ACCEPT_LANGUAGE"](瀏覽器語言)。我們所要做的就是把這些內容讀出來,然后用strpos或者preg_match函數來對比就可以了,根據程序的設計我們還可以將頁面設計得更漂亮一些出來。

源自博友的博客:http://www.jb51.net/article/34344.htm


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM