发布: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

php获取客户端浏览器以及操作系统信息的方法的更多相关文章

  1. 获取ip,获取客户端浏览器,获取客户端访问操作系统,获取客户端访问设备

    /** * 获取ip */ public static function getIp() { if (getenv('HTTP_CLIENT_IP')) { $ip = getenv('HTTP_CL ...

  2. php获取客户端IP地址的几种方法(转)

    [php] view plain copy php获取客户端IP地址的几种方法 方法一 <?php $iipp=$_SERVER["REMOTE_ADDR"]; echo $ ...

  3. Java 获取客户端浏览器中的语言设置

    获取客户端的首选语言 javax.servlet.ServletRequest.getLocale() 根据Accept-Language请求头返回客户端的首选语言.如果客户端请求没有Accept-L ...

  4. JAVA EE获取浏览器和操作系统信息

    一.原理说明:  1. 浏览器访问服务端时,Http请求头上会带上客户端一些信息,可通过"user-agent"获取. //java获取方法如下,其他语言也有自己获取方法 Stri ...

  5. asp.net获取客户端浏览器及主机信息

    在线预览效果:http://tool.hovertree.com/info/client/ 其中aspx页面的控件代码: <asp:ListBox runat="server" ...

  6. Wp-UserAgent——让WordPress在评论后面加上浏览器和操作系统信息

    在很多的博客网站都看到过在评论的后面显示了浏览器和操作系统的信息,网上也用过一些插件,但是都不是很好看,有一次在一个网页上看见了这个评论后面不仅显示了浏览器和操作系统的图片,还有文字信息, 感觉不错, ...

  7. autoit获取ie浏览器简单操作网页(GUI小工具)

    需要稍稍熟悉一下autoti提供的语言, 我简单做了一个带GUI的小工具,实现根据IE标题点击页面内的LinkText 注意:使用时IE窗口是显示状态才可以获取到(可以在脚本中加入搜索IE句柄,将ie ...

  8. PHP】获取客户端(浏览器)信息、获取客户端系统信息、获取服务器信息

    * 获取客户端浏览器信息 * @param null * @author https://blog.jjonline.cn/phptech/168.html * @return string */ f ...

  9. C# WebApi 获取客户端ip地址

    转自:http://www.cnblogs.com/weixing/p/5674078.html References required: HttpContextWrapper - System.We ...

随机推荐

  1. lambda表达式、内置函数、进制和文件操作

    lambda表达式 定义函数(普通方式)def f1(): return 123 f2 = lambda : 123 def f3(a1,a2): return a1+a2 定义函数(lambda表达 ...

  2. hive数据文件简单合并

    MR代码: package merge; import java.io.IOException; import java.util.Iterator; import org.apache.hadoop ...

  3. XMLHttpRequest的五步使用方法

    <html> <head> <title>Demo</title> <style> body,input,button,select,h1{ ...

  4. JQuery基础教程:选择元素(下)

    DOM遍历方法   利用前面介绍的jQuery选择符取得一组元素,就像是我们在DOM树中纵横遍历再经过筛选得到的结果一样.如果只有这一种取得元素的方式,那我们选择的余地从某个角度讲也是很有限的.很多情 ...

  5. iphone显示信号强弱(field test)

    第一步,进入[电话]第二步,在拨号键盘上输入*3001#12345#*,然后按下[呼叫]按钮,iOS内置应用Field Test就被启动了,同时左上角也出现了信号强度的精确值. 第三步,按住iPhon ...

  6. zsh配置文件

    zsh通过编辑~/.zshrc来配置环境变量,bash通过编辑~/.bash_profile来做同样的事

  7. 关闭linux下的使用的端口

    lsof -P -n -i kill pid 另外防火墙 iptables之类的也可以关闭端口

  8. Debian的一个命令

    dpkg是一个Debian的一个命令行工具,它可以用来安装.删除.构建和管理Debian的软件包.下面是它的一些命令解释:1)安装软件命令行:dpkg -i <.deb file name> ...

  9. 【PL/SQL练习】显式游标

    cursor --------需要用户先定义,在select时,可以用于处理多行记录 1.declare  声明一个游标 2.open cursor (隐式游标自动open) 3.fetch curs ...

  10. 一步步教你为网站开发Android客户端---HttpWatch抓包,HttpClient模拟POST请求,Jsoup解析HTML代码,动态更新ListView

    本文面向Android初级开发者,有一定的Java和Android知识即可. 文章覆盖知识点:HttpWatch抓包,HttpClient模拟POST请求,Jsoup解析HTML代码,动态更新List ...