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 相关文章推荐
新浪新闻小偷
Oct 09 PHP
php 向访客和爬虫显示不同的内容
Nov 09 PHP
组合算法的PHP解答方法
Feb 04 PHP
PHP中“简单工厂模式”实例代码讲解
Sep 04 PHP
使用迭代器 遍历文件信息的详解
Jun 08 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(三)
Jun 23 PHP
微信公众平台网页授权获取用户基本信息中授权回调域名设置的变动
Oct 21 PHP
php检查日期函数checkdate用法实例
Mar 19 PHP
Laravel 5框架学习之路由、控制器和视图简介
Apr 07 PHP
PHP通过加锁实现并发情况下抢码功能
Aug 10 PHP
PHP foreach遍历多维数组实现方式
Nov 16 PHP
PHP获取文件扩展名的常用方法小结【五种方式】
Apr 27 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
PHP高级OOP技术演示
2009/08/27 PHP
thinkphp中字符截取函数msubstr()用法分析
2016/01/09 PHP
PHP将身份证正反面两张照片合成一张图片的代码
2017/04/08 PHP
yii2 resetful 授权验证详解
2017/05/18 PHP
PHP实现的防止跨站和xss攻击代码【来自阿里云】
2018/01/29 PHP
laravel框架创建授权策略实例分析
2019/11/22 PHP
js日期时间补零的小例子
2013/03/05 Javascript
jquery文字上下滚动的实现方法
2013/03/22 Javascript
jquery.autocomplete修改实现键盘上下键自动填充示例
2013/11/19 Javascript
js中的时间转换—毫秒转换成日期时间的示例代码
2014/01/26 Javascript
node中socket.io的事件使用详解
2014/12/15 Javascript
JS如何判断是否为ie浏览器的方法(包括IE10、IE11在内)
2015/12/13 Javascript
Nodejs如何复制文件
2016/03/09 NodeJs
3kb jQuery代码搞定各种树形选择的实现方法
2016/06/10 Javascript
H5移动端适配 Flexible方案
2016/10/24 Javascript
使用jQuery,Angular实现登录界面验证码详解
2017/04/27 jQuery
防止页面url缓存中ajax中post请求的处理方法
2017/10/10 Javascript
nodejs操作mongodb的增删改查功能实例
2017/11/09 NodeJs
Vue-router 切换组件页面时进入进出动画方法
2018/09/01 Javascript
js验证密码强度解析
2020/03/18 Javascript
angular组件间传值测试的方法详解
2020/05/07 Javascript
关于Tensorflow中的tf.train.batch函数的使用
2018/04/24 Python
matplotlib 纵坐标轴显示数据值的实例
2018/05/25 Python
详解Python爬虫爬取博客园问题列表所有的问题
2021/01/18 Python
医疗保健专业人士购物网站:Scrubs & Beyond
2017/02/08 全球购物
英国电器零售商:PRC Direct
2018/06/21 全球购物
培训主管岗位职责
2014/02/01 职场文书
2014植树节活动总结
2014/03/11 职场文书
租赁意向书范本
2014/04/01 职场文书
七一党日活动总结
2014/07/08 职场文书
2014酒店客房部工作总结
2014/12/16 职场文书
运动与健康自我评价
2015/03/09 职场文书
安全守法证明
2015/06/23 职场文书
入队仪式主持词
2015/07/04 职场文书
用Java实现简单计算器功能
2021/07/21 Java/Android
MySQL创建管理子分区
2022/04/13 MySQL