php $_SERVER['HTTP_USER_AGENT'] 用法介紹


在PHP中HTTP_USER_AGENT是用來獲取用戶的相關信息的,包括用戶使用的瀏覽器,操作系統等信息,

顯示結果為:

Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.104 Safari/537.36 Core/1.53.2372.400 QQBrowser/9.5.10548.400

這個時候我們可以用正則表達式來匹配以上字符串,用戶的瀏覽器,操作系統信息

 

php根據匹配后的結果,分配需要的CSS文件,JS等

 

<?php //顯示訪問用戶的瀏覽器信息
echo 'Browser: ' . determinebrowser($Agent) . '<BR>'; //顯示訪問用戶的操作系統平台
echo 'Platform: ' . determineplatform($Agent). '<BR>'; //正值表達式比對解析$_SERVER['HTTP_USER_AGENT']中的字符串 獲取訪問用戶的瀏覽器的信息
function determinebrowser ($Agent) {
  
$browseragent=""; //瀏覽器
  $browserversion=""; //瀏覽器的版本

if (ereg('MSIE ([0-9].[0-9]{1,2})',$Agent,$version)) {   $browserversion=$version[1];
  
$browseragent="Internet Explorer";
}
else if (ereg( 'Opera/([0-9]{1,2}.[0-9]{1,2})',$Agent,$version)) {   $browserversion=$version[1];
  
$browseragent="Opera";
}
else if (ereg( 'Firefox/([0-9.]{1,5})',$Agent,$version)) {   $browserversion=$version[1];
  
$browseragent="Firefox"; }else if (ereg( 'Chrome/([0-9.]{1,3})',$Agent,$version)) {   $browserversion=$version[1];
  
$browseragent="Chrome"; } else if (ereg( 'Safari/([0-9.]{1,3})',$Agent,$version)) {   $browseragent="Safari";   

   $browserversion=""; } else {   $browserversion="";
  
$browseragent="Unknown"; }   return $browseragent." ".$browserversion; } // 同理獲取訪問用戶的瀏覽器的信息 function determineplatform ($Agent) {   $browserplatform==''; if (eregi('win',$Agent) && strpos($Agent, '95')) {   $browserplatform="Windows 95"; } elseif (eregi('win 9x',$Agent) && strpos($Agent, '4.90')) {   $browserplatform="Windows ME"; } elseif (eregi('win',$Agent) && ereg('98',$Agent)) {   $browserplatform="Windows 98"; } elseif (eregi('win',$Agent) && eregi('nt 5.0',$Agent)) {   $browserplatform="Windows 2000"; } elseif (eregi('win',$Agent) && eregi('nt 5.1',$Agent)) {   $browserplatform="Windows XP"; } elseif (eregi('win',$Agent) && eregi('nt 6.0',$Agent)) {   $browserplatform="Windows Vista"; } elseif (eregi('win',$Agent) && eregi('nt 6.1',$Agent)) {   $browserplatform="Windows 7"; } elseif (eregi('win',$Agent) && ereg('32',$Agent)) {   $browserplatform="Windows 32"; } elseif (eregi('win',$Agent) && eregi('nt',$Agent)) {   $browserplatform="Windows NT"; }elseif (eregi('Mac OS',$Agent)) {   $browserplatform="Mac OS"; } elseif (eregi('linux',$Agent)) {   $browserplatform="Linux"; } elseif (eregi('unix',$Agent)) {   $browserplatform="Unix"; } elseif (eregi('sun',$Agent) && eregi('os',$Agent)) {   $browserplatform="SunOS"; } elseif (eregi('ibm',$Agent) && eregi('os',$Agent)) {   $browserplatform="IBM OS/2"; } elseif (eregi('Mac',$Agent) && eregi('PC',$Agent)) {   $browserplatform="Macintosh"; } elseif (eregi('PowerPC',$Agent)) {   $browserplatform="PowerPC"; } elseif (eregi('AIX',$Agent)) {   $browserplatform="AIX"; } elseif (eregi('HPUX',$Agent)) {   $browserplatform="HPUX"; } elseif (eregi('NetBSD',$Agent)) {   $browserplatform="NetBSD"; } elseif (eregi('BSD',$Agent)) {   $browserplatform="BSD"; } elseif (ereg('OSF1',$Agent)) {   $browserplatform="OSF1"; } elseif (ereg('IRIX',$Agent)) {   $browserplatform="IRIX"; } elseif (eregi('FreeBSD',$Agent)) {   $browserplatform="FreeBSD"; } if ($browserplatform=='') {$browserplatform = "Unknown"; }   return $browserplatform; } ?>

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

一般我們可以判斷用戶當前是否是在微信端中打開 可以如下判斷

  private function is_wx_pro() {
$user_agent = $_SERVER['HTTP_USER_AGENT'];
if (strpos($user_agent, 'MicroMessenger') === false) { // 非微信瀏覽器禁止瀏覽 return false; } else {
// 微信瀏覽器,允許訪問 preg_match('/.*?(MicroMessenger\/([0-9.]+))\s*/', $user_agent, $matches);//echo "MicroMessenger";
echo '<br>Version:'.$matches[2];// 獲取版本號
return true; } }

 


免責聲明!

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



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