PHP判断浏览器、判断语言代码分享


Posted in PHP onMarch 05, 2015

PHP编程中经常需要用到一些服务器的一些资料,特把$_SERVER的详细参数整理下,方便以后使用。

判断浏览器类型

//判断类型  
<?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"]; 
?>

判断浏览器内核的PHP程序

<?php
error_reporting(E_ALL & ~ E_NOTICE);
class clientGetObj  
{  
function getBrowse()  
{  
global $_SERVER;  
$Agent = $_SERVER['HTTP_USER_AGENT'];  
$browser = '';  
$browserver = '';  
$Browser = array('Lynx', 'MOSAIC', 'AOL', 'Opera', 'JAVA', 'MacWeb', 'WebExplorer', 'OmniWeb');  
for($i = 0; $i <= 7; $i ++){  
if(strpos($Agent, $Browsers[$i])){  
$browser = $Browsers[$i];  
$browserver = '';  
}  
}  
if(preg_match('/Mozilla/', $Agent) && !preg_match('/MSIE/', $Agent)){  
$temp = explode('(', $Agent);  
$Part = $temp[0];  
$temp = explode('/', $Part);  
$browserver = $temp[1];  
$temp = explode(' ', $browserver);  
$browserver = $temp[0];  
$browserver = preg_replace('/([d.]+)/', '1', $browserver);  
$browserver = $browserver;  
$browser = 'Netscape Navigator';  
}  
if(preg_match('/Mozilla/', $Agent) && preg_match('/Opera/', $Agent)) {  
$temp = explode('(', $Agent);  
$Part = $temp[1];  
$temp = explode(')', $Part);  
$browserver = $temp[1];  
$temp = explode(' ', $browserver);  
$browserver = $temp[2];  
$browserver = preg_replace('/([d.]+)/', '1', $browserver);  
$browserver = $browserver;  
$browser = 'Opera';  
}  
if(preg_match('/Mozilla/', $Agent) && preg_match('/MSIE/', $Agent)){  
$temp = explode('(', $Agent);  
$Part = $temp[1];  
$temp = explode(';', $Part);  
$Part = $temp[1];  
$temp = explode(' ', $Part);  
$browserver = $temp[2];  
$browserver = preg_replace('/([d.]+)/','1',$browserver);  
$browserver = $browserver;  
$browser = 'Internet Explorer';  
}  
if($browser != ''){  
$browseinfo = $browser.' '.$browserver;  
} else { 
$browseinfo = false;  
}  
return $browseinfo;  
}  
  
function getIP ()  
{  
global $_SERVER;  
if (getenv('HTTP_CLIENT_IP')) {  
$ip = getenv('HTTP_CLIENT_IP');  
} else if (getenv('HTTP_X_FORWARDED_FOR')) {  
$ip = getenv('HTTP_X_FORWARDED_FOR');  
} else if (getenv('REMOTE_ADDR')) {  
$ip = getenv('REMOTE_ADDR');  
} else {  
$ip = $_SERVER['REMOTE_ADDR'];  
}  
return $ip;  
}  
  
function getOS ()  
{  
global $_SERVER;  
$agent = $_SERVER['HTTP_USER_AGENT'];  
$os = false;  
if (preg_match('/win/', $agent) && strpos($agent, '95')){  
$os = 'Windows 95';  
}  
else if (preg_match('/win 9x/', $agent) && strpos($agent, '4.90')){  
$os = 'Windows ME';  
}  
else if (preg_match('/win/', $agent) && preg_match('98', $agent)){  
$os = 'Windows 98';  
}  
else if (preg_match('/win/', $agent) && preg_match('nt 5.1', $agent)){  
$os = 'Windows XP';  
}  
else if (preg_match('/win/', $agent) && preg_match('nt 5', $agent)){  
$os = 'Windows 2000';  
}  
else if (preg_match('/win/', $agent) && preg_match('nt', $agent)){  
$os = 'Windows NT';  
}  
else if (preg_match('/win/', $agent) && preg_match('32', $agent)){  
$os = 'Windows 32';  
}  
else if (preg_match('/linux/', $agent)){  
$os = 'Linux';  
}  
else if (preg_match('/unix/', $agent)){  
$os = 'Unix';  
}  
else if (preg_match('/sun/', $agent) && preg_match('os', $agent)){  
$os = 'SunOS';  
}  
else if (preg_match('/ibm/', $agent) && preg_match('os', $agent)){  
$os = 'IBM OS/2';  
}  
else if (preg_match('/Mac/', $agent) && preg_match('PC', $agent)){  
$os = 'Macintosh';  
}  
else if (preg_match('/PowerPC/', $agent)){  
$os = 'PowerPC';  
}  
else if (preg_match('/AIX/', $agent)){  
$os = 'AIX';  
}  
else if (preg_match('/HPUX/', $agent)){  
$os = 'HPUX';  
}  
else if (preg_match('/NetBSD/', $agent)){  
$os = 'NetBSD';  
}  
else if (preg_match('/BSD/', $agent)){  
$os = 'BSD';  
}  
else if (preg_match('/OSF1/', $agent)){  
$os = 'OSF1';  
}  
else if (preg_match('/IRIX/', $agent)){  
$os = 'IRIX';  
}  
else if (preg_match('/FreeBSD/', $agent)){  
$os = 'FreeBSD';  
}  
else if (preg_match('/teleport/', $agent)){  
$os = 'teleport';  
}  
else if (preg_match('/flashget/', $agent)){  
$os = 'flashget';  
}  
else if (preg_match('/webzip/', $agent)){  
$os = 'webzip';  
}  
else if (preg_match('/offline/', $agent)){  
$os = 'offline';  
}  
else {  
$os = 'Unknown';  
}  
return $os;  
}  
}
$code = new clientGetObj;  
echo $str1 = $code->getBrowse()."<br>";//浏览器:  
echo $str2 = $code->getIP()."<br>";//IP地址:  
echo $str3 = $code->getOS();//操作系统:  
?>

以上就是个人整理的关于$_SERVER获取服务器信息的常用信息了,希望大家能够喜欢。

PHP 相关文章推荐
php正则校验用户名介绍
Jul 19 PHP
PHP $_SERVER详解
Jan 16 PHP
PHP 图片上传实现代码 带详细注释
Apr 29 PHP
rrmdir php中递归删除目录及目录下的文件
May 15 PHP
自己写的兼容低于PHP 5.5版本的array_column()函数
Oct 24 PHP
PHP判断网络文件是否存在的方法
Mar 12 PHP
php 参数过滤、数据过滤详解
Oct 26 PHP
自定义min版smarty模板引擎MinSmarty.class.php文件及用法
May 20 PHP
thinkPHP5.0框架配置格式、加载解析与读取方法
Mar 17 PHP
PHP-FPM和Nginx的通信机制详解
Feb 01 PHP
yii2的restful api路由实例详解
May 14 PHP
laravel model 两表联查示例
Oct 24 PHP
Php-Redis安装测试笔记
Mar 05 #PHP
PHP中文乱码解决方案
Mar 05 #PHP
php判断输入是否是纯数字,英文,汉字的方法
Mar 05 #PHP
PHP使用适合阅读的格式显示文件大小的方法
Mar 05 #PHP
PHP获取QQ达人QQ信息的方法
Mar 05 #PHP
PHP访问Google Search API的方法
Mar 05 #PHP
PHP使用PDO连接ACCESS数据库
Mar 05 #PHP
You might like
饭制《星际争霸》Mod:优化游戏机制 增加新单位
2017/07/02 星际争霸
PHP XML数据解析代码
2010/05/26 PHP
PHP explode()函数用法、切分字符串
2012/10/03 PHP
php快递单号查询接口使用示例
2014/05/05 PHP
php上传图片类及用法示例
2016/05/11 PHP
PHP静态延迟绑定和普通静态效率的对比
2017/10/20 PHP
ajax+php实现无刷新验证手机号的实例
2017/12/22 PHP
对 lightbox JS 图片控件进行了一下改造, 使其他支持复杂的图片说明
2010/03/20 Javascript
Javascript new关键字的玄机 以及其它
2010/08/25 Javascript
javascript删除一个html元素节点的方法
2014/12/20 Javascript
基于Jquery实现表单验证
2020/07/20 Javascript
jQuery.form.js插件不能解决连接超时(timeout)的原因分析及解决方法
2016/10/14 Javascript
详解vue express启动数据服务
2017/07/05 Javascript
分享ES6的7个实用技巧
2018/01/18 Javascript
layui select动态添加option的实例
2018/03/07 Javascript
Vue核心概念Getter的使用方法
2019/01/18 Javascript
koa大型web项目中使用路由装饰器的方法示例
2019/04/02 Javascript
封装微信小程序http拦截器过程解析
2019/08/13 Javascript
JS实现点星星消除小游戏
2020/03/24 Javascript
解决父组件将子组件作为弹窗调用只执行一次created的问题
2020/07/24 Javascript
python strip()函数 介绍
2013/05/24 Python
Python3基础之条件与循环控制实例解析
2014/08/13 Python
Python中使用wxPython开发的一个简易笔记本程序实例
2015/02/08 Python
Django Channels 实现点对点实时聊天和消息推送功能
2019/07/17 Python
python加载自定义词典实例
2019/12/06 Python
python3下pygame如何实现显示中文
2020/01/11 Python
浅谈Python的方法解析顺序(MRO)
2020/03/05 Python
基于SpringBoot构造器注入循环依赖及解决方式
2020/04/26 Python
Python脚本调试工具安装过程
2021/01/11 Python
使用CSS3来代替JS实现交互
2017/08/10 HTML / CSS
HTML5中的Web Notification桌面右下角通知功能的实现
2018/04/19 HTML / CSS
中间件的定义
2016/08/09 面试题
骨干教师培训感言
2014/01/16 职场文书
毕业论文评语大全
2014/04/29 职场文书
《三国志》赏析
2019/08/27 职场文书
复制别人的成功真的会成功吗?
2019/10/17 职场文书