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 相关文章推荐
粗略计算在线时间,bug:ip相同
Dec 09 PHP
需要使用php模板的朋友必看的很多个顶级PHP模板引擎比较分析
May 26 PHP
如何使用PHP批量去除文件UTF8 BOM信息
Aug 05 PHP
php中sprintf与printf函数用法区别解析
Feb 17 PHP
PHP实现利用MySQL保存session的方法
Aug 23 PHP
Yii入门教程之Yii安装及hello world
Nov 25 PHP
thinkPHP商城公告功能开发问题分析
Dec 01 PHP
PHP进制转换实例分析(2,8,16,36,64进制至10进制相互转换)
Feb 04 PHP
PHP中phar包的使用教程
Jun 14 PHP
PHP 实现手机端APP支付宝支付功能
Jun 07 PHP
PHP判断是否是微信打开还是浏览器打开的方法
Feb 27 PHP
PHP+ajax实现上传、删除、修改单张图片及后台处理逻辑操作详解
Feb 12 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
日本收入最高的漫画家:海贼王作者版税年收入高达8.45亿元
2020/03/04 日漫
PHP反射使用实例和PHP反射API的中文说明
2014/07/02 PHP
PHP获取QQ达人QQ信息的方法
2015/03/05 PHP
用PHP去掉文件头的Unicode签名(BOM)方法
2017/06/22 PHP
TP3.2批量上传文件或图片 同名冲突问题的解决方法
2017/08/01 PHP
通过event对象的fromElement属性解决热区设置主实体的一个bug
2008/12/22 Javascript
jQuery拖拽div实现思路
2014/02/19 Javascript
JavaScript实现MIPS乘法模拟的方法
2015/04/17 Javascript
JavaScript数组迭代器实例分析
2015/06/09 Javascript
jQuery.prop() 使用详解
2015/07/19 Javascript
微信公众号开发 实现点击返回按钮就返回到聊天界面
2016/12/15 Javascript
Express URL跳转(重定向)的实现方法
2017/04/07 Javascript
angular2系列之路由转场动画的示例代码
2017/11/09 Javascript
JS中的事件委托实例浅析
2018/03/22 Javascript
JS实现显示当前日期的实例代码
2018/07/03 Javascript
Vue.js实现的计算器功能完整示例
2018/07/11 Javascript
webpack 动态批量加载文件的实现方法
2020/03/19 Javascript
连接Python程序与MySQL的教程
2015/04/29 Python
Python实现图像几何变换
2015/07/06 Python
Python分治法定义与应用实例详解
2017/07/28 Python
python之Flask实现简单登录功能的示例代码
2018/12/24 Python
python flask web服务实现更换默认端口和IP的方法
2019/07/26 Python
Python中__repr__和__str__区别详解
2019/11/07 Python
Python三元运算与lambda表达式实例解析
2019/11/30 Python
基于Python绘制个人足迹地图
2020/06/01 Python
CSS3中border-radius属性设定圆角的使用技巧
2016/05/10 HTML / CSS
韩国休闲女装品牌网站:ANAIS
2016/08/24 全球购物
护理专业推荐信
2013/11/07 职场文书
煤矿机修工岗位职责
2014/02/07 职场文书
初中生旷课检讨书范文
2014/10/06 职场文书
政风行风自查自纠报告
2014/10/21 职场文书
大学四年个人总结
2015/03/03 职场文书
孝女彩金观后感
2015/06/10 职场文书
老人节主持词
2015/07/04 职场文书
梳理总结Python开发中需要摒弃的18个坏习惯
2022/01/22 Python
Win11应用商店打开闪退怎么解决? win11应用商店打不开的多种解决办法
2022/04/05 数码科技