用php語言來判斷瀏覽器類型其實很簡單。
因為瀏覽器在和服務器連接時候都會先發送一些包含自己信息的內容(瀏覽器類型、語言啦)。
這裏我們主要分析的是_SERVER["HTTP_USER_AGENT"](瀏覽器類型)和_SERVER["HTTP_ACCEPT_LANGUAGE"](瀏覽器語言)。
我們所要做的就是把這些內容讀出來,然後用strpos或者preg_match函數來對比就可以了。
判斷瀏覽器類型:
<?php echo $_SERVER["HTTP_USER_AGENT"]; ?>
判斷瀏覽器語言:
<?php echo $_SERVER["HTTP_ACCEPT_LANGUAGE"]; ?>
判斷瀏覽器類型的具體程序如下:
- <?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"];
- ?>
<?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"]; ?>
判斷瀏覽器語言的具體程序如下:
- <?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"];
- ?>