使用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 日志缩略名的创建函数代码
May 26 PHP
9个PHP开发常用功能函数小结
Jul 15 PHP
一个PHP验证码类代码分享(已封装成类)
Jul 17 PHP
phpExcel导出大量数据出现内存溢出错误的解决方法
Feb 28 PHP
关于zend studio 出现乱码问题的总结
Jun 23 PHP
解析PHP中的unset究竟会不会释放内存
Jul 18 PHP
php使用Jpgraph绘制复杂X-Y坐标图的方法
Jun 10 PHP
Linux环境下php实现给网站截图的方法
May 03 PHP
Laravel框架中Blade模板的用法示例
Aug 30 PHP
php通过header发送自定义数据方法
Jan 18 PHP
Ajax+PHP实现的分类列表框功能示例
Feb 11 PHP
PHP htmlentities()函数用法讲解
Feb 25 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
php文件上传类的分享
2017/07/06 PHP
设定php简写功能的方法
2019/11/28 PHP
出现“不能执行已释放的Script代码”错误的原因及解决办法
2007/08/29 Javascript
jquery五角星评分插件示例分享
2014/02/21 Javascript
轻松创建nodejs服务器(4):路由
2014/12/18 NodeJs
充分发挥Node.js程序性能的一些方法介绍
2015/06/23 Javascript
基于jquery实现一个滚动的分步注册向导-附源码
2015/08/26 Javascript
浅析JavaScript 调试方法和技巧
2015/10/22 Javascript
Bootstrap基本插件学习笔记之Alert警告框(20)
2016/12/08 Javascript
js实现移动端微信页面禁止字体放大
2017/02/16 Javascript
JavaScript中的遍历详解(多种遍历)
2017/04/07 Javascript
Vue项目中quill-editor带样式编辑器的使用方法
2017/08/08 Javascript
对angularJs中controller控制器scope父子集作用域的实例讲解
2018/10/08 Javascript
ES6 如何改变JS内置行为的代理与反射
2019/02/11 Javascript
vue路由导航守卫和请求拦截以及基于node的token认证的方法
2019/04/07 Javascript
深入了解JavaScript 私有化
2019/05/30 Javascript
vue使用swiper实现中间大两边小的轮播图效果
2019/11/24 Javascript
通过微信公众平台获取公众号文章的方法示例
2019/12/25 Javascript
详解Howler.js Web音频播放终极解决方案
2020/08/23 Javascript
[01:54]TI珍贵瞬间系列(五):压力
2020/08/29 DOTA
Python 实现数据库更新脚本的生成方法
2017/07/09 Python
对Python的交互模式和直接运行.py文件的区别详解
2019/06/29 Python
使用Python完成15位18位身份证的互转功能
2019/11/06 Python
python将dict中的unicode打印成中文实例
2020/05/11 Python
keras得到每层的系数方式
2020/06/15 Python
python tkinter的消息框模块(messagebox,simpledialog)
2020/11/07 Python
HTML5 解析规则分析
2009/08/14 HTML / CSS
图片上传插件ImgUploadJS:用HTML5 File API 实现截图粘贴上传、拖拽上传
2016/01/20 HTML / CSS
考试违纪检讨书
2014/02/02 职场文书
投标承诺书范本
2014/03/27 职场文书
留学生求职信
2014/06/03 职场文书
党的群众路线教育实践活动对照检查材料范文
2014/09/24 职场文书
四风问题对照检查材料整改措施
2014/09/27 职场文书
卖房授权委托书样本
2014/10/05 职场文书
公司2014年度工作总结
2014/12/10 职场文书
Python函数中的不定长参数相关知识总结
2021/06/24 Python