php獲取客戶端瀏覽器以及操作系統信息的方法


發布:sunday01   來源:net   閱讀: 2   【大 中 小】 

在較為智能的程序中,php可以獲取客戶端瀏覽器及操作系統信息,然后根據瀏覽器及系統類型,加載不同的頁面,以提供更加個性化的服務。 

使用php獲取客戶端瀏覽器與操作系統信息。 

1、PHP超級全局變量$_SERVER數組中字段['HTTP_USER_AGENT'] 獲取訪問用戶的所有信息 
以下是一個通過$_SERVER['HTTP_USER_AGENT']獲取到的字符串 : 
Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/533.2 (KHTML, like Gecko) Chrome/5.0.342.3 Safari/533.2 

2、使用正則表達式匹配以上字符串,用戶的瀏覽器、操作系統信息。 

3、PHP根據匹配后的字符串(用戶的瀏覽器 操作系統信息),分配需要的CSS、JS等,返回給用戶 

我的瀏覽器與操作系統信息: 
Browser: Chrome 5.0 
Platform: Windows 7 

下面給出一個完整的例子。 
<?php 
// 顯示訪問用戶的瀏覽器信息 
echo 'Browser: ' . determinebrowser( $Agent) . '<BR>'; 
// 顯示訪問用戶的操作系統平台 
echo 'Platform: ' . determineplatform( $Agent). '<BR>'; 

// link:http://www.jbxue.com 
//正值表達式比對解析$_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

?> 

原始鏈接: http://www.jbxue.com/article/6229.html


免責聲明!

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



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