使用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中json_decode()和json_encode()的使用方法
Jun 04 PHP
php中计算未知长度的字符串哪个字符出现的次数最多的代码
Aug 14 PHP
PHP中通过fopen()函数访问远程文件示例
Nov 18 PHP
linux下实现定时执行php脚本
Feb 13 PHP
PHP+shell实现多线程的方法
Jul 01 PHP
使用php从身份证号中获取一系列线索(星座、生肖、生日等)
May 11 PHP
php制作基于xml的RSS订阅源功能示例
Feb 08 PHP
PHP实现的mysql主从数据库状态检测功能示例
Jul 20 PHP
PHP实现合并两个排序链表的方法
Jan 19 PHP
php处理多图上传压缩代码功能
Jun 13 PHP
PHP网页缓存技术优点及代码实例
Jul 29 PHP
PHP sdk实现在线打包代码示例
Dec 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
使用PHPMYADMIN操作mysql数据库添加新用户和数据库的方法
2010/04/02 PHP
第4章 数据处理-php数组的处理-郑阿奇
2011/07/04 PHP
作为程序员必知的16个最佳PHP库
2015/12/09 PHP
THINKPHP3.2使用soap连接webservice的解决方法
2017/12/13 PHP
JQuery 构建客户/服务分离的链接模型中Table分页代码效率初探
2010/01/22 Javascript
使用javascript:将其它类型值转换成布尔类型值的解决方法详解
2013/05/07 Javascript
js复制网页内容并兼容各主流浏览器的代码
2013/12/17 Javascript
node.js中使用q.js实现api的promise化
2014/09/17 Javascript
使用phantomjs进行网页抓取的实现代码
2014/09/29 Javascript
JavaScript学习笔记之内置对象
2015/01/22 Javascript
浅析javascript函数表达式
2016/02/10 Javascript
Bootstrap入门书籍之(五)导航条、分页导航
2016/02/17 Javascript
Angular4自制一个市县二级联动组件示例
2017/11/21 Javascript
浅谈Vue 数据响应式原理
2018/05/07 Javascript
JS中Promise函数then的奥秘探究
2018/07/30 Javascript
react实现换肤功能的示例代码
2018/08/14 Javascript
手把手教你 CKEDITOR 4 扩展插件制作
2019/06/18 Javascript
解决layer.open后laydate失效的问题
2019/09/06 Javascript
跟老齐学Python之玩转字符串(3)
2014/09/14 Python
自己使用总结Python程序代码片段
2015/06/02 Python
Python使用defaultdict读取文件各列的方法
2017/05/11 Python
Python基于win32ui模块创建弹出式菜单示例
2018/05/09 Python
详解Python if-elif-else知识点
2018/06/11 Python
TensorFlow实现模型评估
2018/09/07 Python
解决TensorFlow训练内存不断增长,进程被杀死问题
2020/02/05 Python
Python制作数据预测集成工具(值得收藏)
2020/08/21 Python
html5+css3之CSS中的布局与Header的实现
2014/11/21 HTML / CSS
HTML5本地存储之Web Storage应用介绍
2013/01/06 HTML / CSS
加拿大建筑和装修专家:Reno-Depot
2017/12/21 全球购物
优秀毕业生求职信范文
2014/01/02 职场文书
医校毕业生自我鉴定
2014/01/25 职场文书
会计专业导师推荐信
2014/03/08 职场文书
工程竣工验收申请报告
2015/05/15 职场文书
《追风筝的人》:人心中的成见是座大山,但请不忘初心
2019/11/15 职场文书
Spring Security使用单点登录的权限功能
2022/04/03 Java/Android
Python可视化神器pyecharts之绘制箱形图
2022/07/07 Python