使用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_Flame(Version:Progress)的原代码
Oct 09 PHP
PHP Pear 安装及使用
Mar 19 PHP
PHP 巧用数组降低程序的时间复杂度
Jan 01 PHP
php smarty函数扩展
Mar 15 PHP
php输出表格的实现代码(修正版)
Dec 29 PHP
常用的PHP数据库操作方法(MYSQL版)
Jun 08 PHP
php5.3 注意事项说明
Jul 01 PHP
PHP四种基本排序算法示例
Apr 09 PHP
php中使用base HTTP验证的方法
Apr 20 PHP
DEDE实现转跳属性文档在模板上调用出转跳地址
Nov 04 PHP
thinkphp项目如何自定义微信分享描述内容
Feb 20 PHP
Laravel中validation验证 返回中文提示 全局设置的方法
Sep 29 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安装扩展mcrypt以及相关依赖项(PHP安装PECL扩展的方法)
2013/07/05 PHP
php随机抽奖实例分析
2015/03/04 PHP
php中请求url的五种方法总结
2017/07/13 PHP
PHP实现webshell扫描文件木马的方法
2017/07/31 PHP
ThinkPHP中图片按比例切割的代码实例
2019/03/08 PHP
js 可拖动列表实现代码
2011/12/13 Javascript
让新消息在网页标题闪烁提示的jQuery代码
2013/11/04 Javascript
基于jQuery Circlr插件实现产品图片360度旋转
2015/09/20 Javascript
浅谈angular.js中实现双向绑定的方法$watch $digest $apply
2015/10/14 Javascript
基于angular实现模拟微信小程序swiper组件
2017/06/11 Javascript
label+input实现按钮开关切换效果的实例
2017/08/16 Javascript
vue 运用mock数据的示例代码
2017/11/07 Javascript
vue checkbox 全选 数据的绑定及获取和计算方法
2018/02/09 Javascript
webpack 4.0.0-beta.0版本新特性介绍
2018/02/10 Javascript
利用js实现前后台传送Json的示例代码
2018/03/29 Javascript
详解webpack 入门与解析
2018/04/09 Javascript
Vue可自定义tab组件用法实例
2019/10/24 Javascript
JQuery获得内容和属性方法解析
2020/05/30 jQuery
python 运算符 供重载参考
2009/06/11 Python
Python简单实现TCP包发送十六进制数据的方法
2016/04/16 Python
python 解决selenium 中的 .clear()方法失效问题
2020/09/01 Python
python输出国际象棋棋盘的实例分享
2020/11/26 Python
Pytorch模型迁移和迁移学习,导入部分模型参数的操作
2021/03/03 Python
使用spring mvc+localResizeIMG实现HTML5端图片压缩上传的功能
2016/12/16 HTML / CSS
html5跳转小程序wx-open-launch-weapp踩坑
2020/12/02 HTML / CSS
应聘自荐书
2013/10/08 职场文书
员工培训心得体会
2013/12/30 职场文书
新学期红领巾广播稿
2014/01/14 职场文书
专业求职信撰写要诀
2014/02/18 职场文书
2014物价局群众路线对照检查材料思想汇报
2014/09/21 职场文书
水浒传读书笔记
2015/06/25 职场文书
公司员工培训管理制度
2015/08/04 职场文书
高三英语教学反思
2016/03/03 职场文书
JavaScript小技巧带你提升你的代码技能
2021/09/15 Javascript
golang三种设计模式之简单工厂、方法工厂和抽象工厂
2022/04/10 Golang
Python实现聚类K-means算法详解
2022/07/15 Python