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 相关文章推荐
利用js调用后台php进行数据处理原码
Oct 09 PHP
用PHP4访问Oracle815
Oct 09 PHP
PHP脚本的10个技巧(2)
Oct 09 PHP
PHP的SQL注入过程分析
Jan 06 PHP
PHP Session机制简介及用法
Aug 19 PHP
PHP实现从远程下载文件的方法
Mar 12 PHP
详解PHP实现执行定时任务
Dec 21 PHP
PHP编程入门的基本语法知识点总结
Jan 26 PHP
PHP实现的多文件上传类及用法示例
May 06 PHP
PHP生成可点击刷新的验证码简单示例
May 13 PHP
详解PHP处理字符串类似indexof的方法函数
Jun 11 PHP
Laravel框架实现多个视图共享相同数据的方法详解
Jul 09 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 分页类(模仿google)-面试题目解答
2009/09/13 PHP
PHP基于单例模式实现的数据库操作基类
2016/01/15 PHP
PHP模拟post提交数据方法汇总
2016/02/16 PHP
详解PHP数据压缩、加解密(pack, unpack)
2016/12/17 PHP
Yii 2.0实现联表查询加搜索分页的方法示例
2017/08/02 PHP
js sort 二维数组排序的用法小结
2014/01/24 Javascript
js读取被点击次数的简单实例(从数据库中读取)
2014/03/07 Javascript
jQuery实现仿微软首页感应鼠标变化滑动窗口效果
2015/10/08 Javascript
谈谈JavaScript自定义回调函数
2015/10/18 Javascript
基于jquery实现表格无刷新分页
2016/01/07 Javascript
JS弹性运动实现方法分析
2016/12/15 Javascript
AngularJS select加载数据选中默认值的方法
2018/02/28 Javascript
Vue 中使用vue2-highcharts实现曲线数据展示的方法
2018/03/05 Javascript
element-ui带输入建议的input框踩坑(输入建议空白以及会闪出上一次的输入建议问题)
2019/01/15 Javascript
小程序扫描普通链接二维码跳转小程序指定界面方法
2019/05/07 Javascript
javascript异步编程的六种方式总结
2019/05/17 Javascript
Quasar Input:type=&quot;number&quot; 去掉上下小箭头 实现加减按钮样式功能
2020/04/09 Javascript
VUE Elemen-ui之穿梭框使用方法详解
2021/01/19 Javascript
[01:35]辉夜杯战队访谈宣传片—iG.V
2015/12/25 DOTA
让 python 命令行也可以自动补全
2014/11/30 Python
解决python大批量读写.doc文件的问题
2018/05/08 Python
Python异常的检测和处理方法
2018/10/26 Python
Pandas 按索引合并数据集的方法
2018/11/15 Python
Django之使用内置函数和celery发邮件的方法示例
2019/09/16 Python
Python破解BiliBili滑块验证码的思路详解(完美避开人机识别)
2020/02/17 Python
python3 中使用urllib问题以及urllib详解
2020/08/03 Python
Django路由层URLconf作用及原理解析
2020/09/24 Python
Django如何使用asyncio协程和ThreadPoolExecutor多线程
2020/10/12 Python
什么是用户模式(User Mode)与内核模式(Kernel Mode) ?
2015/09/07 面试题
九州传奇上机题
2014/07/10 面试题
市场营销战略计划书
2014/05/06 职场文书
党的群众路线教育实践活动对照检查材料(教师)
2014/09/24 职场文书
学校四风问题对照检查材料思想汇报
2014/09/26 职场文书
中秋客户感谢信
2015/01/22 职场文书
windows11怎么查看自己安装的版本号? win11版本号的查看方法
2021/11/21 数码科技
如何利用python创作字符画
2022/06/25 Python