程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php $_SERVER[HTTP_USER_AGENT] 用法介紹

php $_SERVER[HTTP_USER_AGENT] 用法介紹

編輯:關於PHP編程

在php中HTTP_USER_AGENT是用來獲取用戶相關信息,包括了用戶浏覽器,操作系統工程,是否安裝了alex toolbar條哦,等信息,有需要了解的朋友可參考。


1.用戶訪問服務器時,利用PHP的超級全局變量$_SERVER數組中字段['HTTP_USER_AGENT'] 獲取訪問用戶的所有信息

 代碼如下 復制代碼

<?php
 echo $_SERVER['HTTP_USER_AGENT'];
 ?>

輸出結果

Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; InfoPath.2; AskTbPTV/5.17.0.25589; Alexa Toolbar)

2.利用正則表達式匹配以上字符串,用戶的浏覽器 操作系統信息

3.PHP根據匹配後的字符串(用戶的浏覽器 操作系統信息),分配需要的CSS文件,JS等等…返回給用戶

我的浏覽器 操作系統信息
Browser: Chrome 5.0

Platform: Windows 7

 代碼如下 復制代碼

<?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;
}

?>

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

 代碼如下 復制代碼

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

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved