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 截取字符串并以零补齐str_pad() 函数
May 07 PHP
PHP的可变变量名的使用方法分享
Feb 05 PHP
php中FTP函数ftp_connect、ftp_login与ftp_chmod用法
Nov 18 PHP
php获取本周星期一具体日期的方法
Apr 20 PHP
PHP异常处理浅析
May 12 PHP
php判断两个日期之间相差多少个月份的方法
Jun 18 PHP
PHP页面跳转操作实例分析(header方法)
Sep 28 PHP
php文件上传、下载和删除示例
Aug 28 PHP
PHP实现阿里大鱼短信验证的实例代码
Jul 10 PHP
阿里云Win2016安装Apache和PHP环境图文教程
Mar 11 PHP
PHP实现微信提现(企业付款到零钱)
Aug 01 PHP
浅析PHP中的 inet_pton 网络函数
Dec 16 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小偷的核心程序
2007/04/09 PHP
PHP优化之批量操作MySQL实例分析
2020/04/23 PHP
Aster vs Newbee BO5 第一场2.19
2021/03/10 DOTA
JavaScript 数组循环引起的思考
2010/01/01 Javascript
网页上的Javascript编辑器和代码格式化
2010/04/25 Javascript
鼠标经过tr时,改变tr当前背景颜色
2014/01/13 Javascript
JS解析XML实例分析
2015/01/30 Javascript
超赞的动手创建JavaScript框架的详细教程
2015/06/30 Javascript
JS动态添加iframe的代码
2015/09/14 Javascript
基于JavaScript定位当前的地理位置
2017/04/11 Javascript
Angularjs中数据绑定的实例详解
2017/08/25 Javascript
浅谈express 中间件机制及实现原理
2017/08/31 Javascript
原生JavaScript实现滑动拖动验证的示例代码
2019/12/06 Javascript
es6数组includes()用法实例分析
2020/04/18 Javascript
JavaScript鼠标悬停事件用法解析
2020/05/15 Javascript
[00:09]DOTA2全国高校联赛 精彩活动引爆全场
2018/05/30 DOTA
手动实现把python项目发布为exe可执行程序过程分享
2014/10/23 Python
python发送邮件实例分享
2017/07/28 Python
基于python requests库中的代理实例讲解
2018/05/07 Python
numpy.meshgrid()理解(小结)
2019/08/01 Python
Python CSV文件模块的使用案例分析
2019/12/21 Python
Python实现定时监测网站运行状态的示例代码
2020/09/30 Python
用Python实现童年贪吃蛇小游戏功能的实例代码
2020/12/07 Python
澳大利亚吉他在线:Artist Guitars
2017/03/30 全球购物
小学科学教学反思
2014/01/26 职场文书
幼儿园儿童节主持词
2014/03/21 职场文书
目标责任书范本
2014/04/16 职场文书
企业形象策划方案
2014/05/29 职场文书
2014年学生会个人工作总结
2014/11/07 职场文书
在职人员跳槽求职信
2015/03/20 职场文书
2015年幼儿园教育教学工作总结
2015/05/25 职场文书
Mysql数据库命令大全
2021/05/26 MySQL
基于JavaScript实现省市联动效果
2021/06/22 Javascript
一些让Python代码简洁的实用技巧总结
2021/08/23 Python
《群青的幻想曲》京力秋树角色PV公开
2022/04/08 日漫
Mysql中mvcc各场景理解应用
2022/08/05 MySQL