使用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 相关文章推荐
解析PayPal支付接口的PHP开发方式
Nov 28 PHP
比较discuz和ecshop的截取字符串函数php版
Sep 03 PHP
php对数组排序的简单实例
Dec 25 PHP
PHP获取php,mysql,apche的版本信息示例代码
Jan 16 PHP
php自定义错误处理用法实例
Mar 20 PHP
php对文件进行hash运算的方法
Apr 03 PHP
php实现的简单美国商品税计算函数
Jul 13 PHP
PHP链表操作简单示例
Oct 15 PHP
php根据年月获取当月天数及日期数组的方法
Nov 30 PHP
PHP isset()与empty()的使用区别详解
Feb 10 PHP
PHP弱类型语言中类型判断操作实例详解
Aug 10 PHP
Laravel框架表单验证操作实例分析
Sep 30 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
仿dedecms下拉分页样式修改的thinkphp分页类实例
2014/10/30 PHP
php购物车实现方法
2015/01/03 PHP
js实现iframe动态调整高度的代码
2008/01/06 Javascript
返回对象在当前级别中是第几个元素的实现代码
2011/01/20 Javascript
js简单实现删除记录时的提示效果
2013/12/05 Javascript
jQuery 获取兄弟元素的几种不错方法
2014/05/23 Javascript
Javascript控制div属性动态变化实例分析
2015/10/08 Javascript
AngularJs html compiler详解及示例代码
2016/09/01 Javascript
jQuery中fadein与fadeout方法用法示例
2016/09/16 Javascript
微信小程序 五星评分(包括半颗星评分)实例代码
2016/12/14 Javascript
NPM 安装cordova时警告:npm WARN deprecated minimatch@2.0.10: Please update to minimatch 3.0.2 or higher to
2016/12/20 Javascript
利用纯JS实现像素逐渐显示的方法示例
2017/08/14 Javascript
浅谈angular2路由预加载策略
2017/10/04 Javascript
JS中的算法与数据结构之常见排序(Sort)算法详解
2019/08/16 Javascript
antdesign-vue结合sortablejs实现两个table相互拖拽排序功能
2021/01/08 Vue.js
[49:59]KG vs Mineski 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
[41:21]夜魇凡尔赛茶话会 第三期02:看图识人
2021/03/11 DOTA
Python 深入理解yield
2008/09/06 Python
Python去掉字符串中空格的方法
2014/03/11 Python
python3 中的字符串(单引号、双引号、三引号)以及字符串与数字的运算
2019/07/18 Python
pycharm如何使用anaconda中的各种包(操作步骤)
2020/07/31 Python
python 使用paramiko模块进行封装,远程操作linux主机的示例代码
2020/12/03 Python
超酷炫 CSS3垂直手风琴菜单
2016/06/28 HTML / CSS
HTML5 Blob对象的具体使用
2020/05/22 HTML / CSS
阿提哈德航空官方网站:Etihad Airways
2017/01/06 全球购物
vue+django实现下载文件的示例
2021/03/24 Vue.js
网络教育自我鉴定
2013/11/01 职场文书
村官工作鉴定评语
2014/01/27 职场文书
《学会待客》教学反思
2014/02/22 职场文书
英语分层教学实施方案
2014/06/15 职场文书
2014年服装销售工作总结
2014/11/27 职场文书
家长会开场白和结束语
2015/05/29 职场文书
借钱欠条怎么写
2015/07/03 职场文书
pytorch常用数据类型所占字节数对照表一览
2021/05/17 Python
在前女友婚礼上,用Python破解了现场的WIFI还把名称改成了
2021/05/28 Python
Go中使用gjson来操作JSON数据的实现
2022/08/14 Golang