发布: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. android小细节

    1.资源包图片尽量控制在50k以内,否则可能读取失败 2.资源图片建议使用png格式,此格式在android系统上支持最好.对于jpeg和gif格式的图片,在android4.0以后版本,通过系统自缩 ...

  2. eclipse打jar包步骤

    eclipse->文件->export->java->JAR file 选择项目,Options增加Add directory entries finish hadoop ja ...

  3. Library Cache: Lock, Pin and Load Lock

    What is "Library cache lock" ? This event controls the concurrency between clients of the ...

  4. Xfce 快捷键

    1:显示桌面 修改文件:~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xmlvim命令:%s/"&l ...

  5. convert NameValueCollection/Dictionary<string, object> to JSON string

    public static class WebExtension { public static T Decode<T>(this RequestBase res) { Type type ...

  6. 嵌入式X86运行linux及QtEmbedded+触摸屏(X86PC104+Xlinux+QtE+触摸屏解决办法)

    嵌入式X86运行linux及QtEmbedded+触摸屏(X86PC104+Xlinux+QtE+触摸屏解决办法) QQ:5724308 邮箱:sankye@163.com

  7. WebsitePanel 2.1.0beta配置部分

    到http://www.websitepanel.net/downloads/下载好单独安装包作为网站内容运行在IIS7.0上,配置applicationpool为localsystem Websit ...

  8. java中高级软件工程师面试总结

    最近去了几家公司面试java中高级工程师,打击挺大的,感觉自己一直以来没有很好的深入学习,对各种知识都是一知半解,但心又太高,想找更高薪的职位,结果面试屡屡碰壁,哎,心情好低落,也是时候静下心来,好好 ...

  9. Eclipse插件开发之基础篇(4) OSGi框架

    转载出处:http://www.cnblogs.com/liuzhuo. 1. 什么是OSGi框架 OSGi(Open Service Gateway Initiative)框架是运行在JavaVM环 ...

  10. Android开发-API指南-<action>

    <action> 英文原文:http://developer.android.com/guide/topics/manifest/action-element.html 采集(更新)日期: ...