使用php判断浏览器的类型和语言的函数代码


Posted in PHP onFebruary 28, 2013

我们经常看到有一些网站上面会显示出你目前使用的浏览器类型和使用的语言,比如显示的是:您使用的浏览器为 IE6,繁体字。看起来是不是很炫。

其实这样的功能不难实现,无非就是判断浏览器的类型和语言,如果用JS来做应该很简单,这里我们看看用PHP来怎么实现这样的功能,既然是在做判断,就可以用PHP的条件语句if..else来判断实现。

判断浏览器类型:

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

判断浏览器语言:

<?php echo $_SERVER["HTTP_ACCEPT_LANGUAGE"]; ?>

判断浏览器类型的具体程序如下:

<?php
if(strpos($_SERVER["HTTP_USER_AGENT"],"MSIE 8.0"))  
echo "Internet Explorer 8.0";  
else if(strpos($_SERVER["HTTP_USER_AGENT"],"MSIE 7.0"))  
echo "Internet Explorer 7.0";  
else if(strpos($_SERVER["HTTP_USER_AGENT"],"MSIE 6.0"))  
echo "Internet Explorer 6.0";  
else if(strpos($_SERVER["HTTP_USER_AGENT"],"Firefox/3"))  
echo "Firefox 3";  
else if(strpos($_SERVER["HTTP_USER_AGENT"],"Firefox/2"))  
echo "Firefox 2";  
else if(strpos($_SERVER["HTTP_USER_AGENT"],"Chrome"))  
echo "Google Chrome";  
else if(strpos($_SERVER["HTTP_USER_AGENT"],"Safari"))  
echo "Safari";  
else if(strpos($_SERVER["HTTP_USER_AGENT"],"Opera"))  
echo "Opera";  
else echo $_SERVER["HTTP_USER_AGENT"];  
?>

判断浏览器语言的具体程序如下:

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

原理:因为浏览器在和服务器连接时候都会先发送一些包含自己信息的内容(浏览器类型、语言)。所以这里我们主要分析的是_SERVER["HTTP_USER_AGENT"](浏览器类型)和_SERVER["HTTP_ACCEPT_LANGUAGE"](浏览器语言)。我们所要做的就是把这些内容读出来,然后用strpos或者preg_match函数来对比就可以了,根据程序的设计我们还可以将页面设计得更漂亮一些出来。

PHP 相关文章推荐
php&amp;java(一)
Oct 09 PHP
缓存技术详谈―php
Dec 14 PHP
PHP Token(令牌)设计
Mar 15 PHP
PHP中=赋值操作符对不同数据类型的不同行为
Jan 02 PHP
使用PHP接收POST数据,解析json数据
Jun 28 PHP
PHP操作MySQL事务实例
Nov 05 PHP
php实现excel中rank函数功能的方法
Jan 20 PHP
PHP 中 Orientation 属性判断上传图片是否需要旋转
Oct 16 PHP
php自定义扩展名获取函数示例
Dec 12 PHP
PHP用PDO如何封装简单易用的DB类详解
Jul 30 PHP
PHP code 验证码生成类定义和简单使用示例
May 27 PHP
PHP7 新增常量
Mar 09 PHP
CI框架源码阅读,系统常量文件constants.php的配置
Feb 28 #PHP
PHP删除非空目录的函数代码小结
Feb 28 #PHP
PHP生成随机用户名和密码的实现代码
Feb 27 #PHP
PHP人民币金额数字转中文大写的函数代码
Feb 27 #PHP
PHP和.net中des加解密的实现方法
Feb 27 #PHP
php和js如何通过json互相传递数据相关问题探讨
Feb 26 #PHP
php数组的概述及分类与声明代码演示
Feb 26 #PHP
You might like
在字符串中把网址改成超级链接
2006/10/09 PHP
thinkphp3.2.2前后台公用类架构问题分析
2014/11/25 PHP
PHP输入输出流学习笔记
2015/05/12 PHP
PHP实现QQ登录实例代码
2016/01/14 PHP
PHP 7安装调试工具Xdebug扩展的方法教程
2017/06/17 PHP
PHP+MySQL实现模糊查询员工信息功能示例
2018/06/01 PHP
laravel框架模型中非静态方法也能静态调用的原理分析
2019/11/23 PHP
Prototype使用指南之selector.js说明
2008/10/26 Javascript
jQuery选择器全集详解
2014/11/24 Javascript
jQuery实现的超链接提示效果示例【附demo源码下载】
2016/09/09 Javascript
jQuery插件FusionCharts实现的Marimekko图效果示例【附demo源码】
2017/03/24 jQuery
bootstrap日期控件问题(双日期、清空等问题解决)
2017/04/19 Javascript
AngulaJS路由 ui-router 传参实例
2017/04/28 Javascript
详谈AngularJs 控制器、数据绑定、作用域
2017/07/09 Javascript
关于vue.js发布后路径引用的问题解决
2017/08/15 Javascript
JavaScript实现的原生态兼容IE6可调可控滚动文字功能详解
2017/09/19 Javascript
在vue中通过render函数给子组件设置ref操作
2020/11/17 Vue.js
vue element el-transfer增加拖拽功能
2021/01/15 Vue.js
Django框架下在URLconf中指定视图缓存的方法
2015/07/23 Python
Python使用logging结合decorator模式实现优化日志输出的方法
2016/04/16 Python
Python中is与==判断的区别
2017/03/28 Python
详解tensorflow载入数据的三种方式
2018/04/24 Python
Python包,__init__.py功能与用法分析
2020/01/07 Python
基于spring boot 日志(logback)报错的解决方式
2020/02/20 Python
一文弄懂Pytorch的DataLoader, DataSet, Sampler之间的关系
2020/07/03 Python
python 实现波浪滤镜特效
2020/12/02 Python
日本最佳原创设计品牌:Felissimo(芬理希梦)
2019/03/19 全球购物
Python文件操作的面试题
2013/06/22 面试题
函授本科毕业自我鉴定
2013/10/09 职场文书
库房保管员岗位职责
2014/04/07 职场文书
南极大冒险观后感
2015/06/05 职场文书
2016秋季校长开学典礼致辞
2015/11/26 职场文书
运动会班级口号霸气押韵
2015/12/24 职场文书
教师廉政准则心得体会
2016/01/20 职场文书
2016年小学教师政治学习心得体会
2016/01/23 职场文书
假如给我三天光明:舟逆水而行,人遇挫而达 
2019/10/29 职场文书