php通过$_SERVER['HTTP_USER_AGENT']获取浏览器相关参数
最近不忙,同事在忙一个app项目。当听到领导安排让他做一个判断苹果还是安卓手机,如果是安卓手机下载安卓app。如果是苹果手机下载苹果app;然后我就上网搜了一下学习学习;
php通过$_SERVER['HTTP_USER_AGENT']可以获取浏览器很多相关的参数;
//获取浏览器
function getBrowse()
{
global $_SERVER;
$Agent = $_SERVER['HTTP_USER_AGENT'];
$browseinfo='';
if(ereg('Mozilla', $Agent) && !ereg('MSIE', $Agent)){
$browseinfo = 'Netscape Navigator';
}
if(ereg('Opera', $Agent)) {
$browseinfo = 'Opera';
}
if(ereg('Mozilla', $Agent) && ereg('MSIE', $Agent)){
$browseinfo = 'Internet Explorer';
}
if(ereg('Chrome', $Agent)){
$browseinfo="Chrome";
}
if(ereg('Safari', $Agent)){
$browseinfo="Safari";
}
if(ereg('Firefox', $Agent)){
$browseinfo="Firefox";
}
return $browseinfo;
}
//获取ip
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 (eregi('win', $agent) && strpos($agent, '95')){
$os = 'Windows 95';
}elseif (eregi('win 9x', $agent) && strpos($agent, '4.90')){
$os = 'Windows ME';
}elseif (eregi('win', $agent) && ereg('98', $agent)){
$os = 'Windows 98';
}elseif (eregi('win', $agent) && eregi('nt 5.1', $agent)){
$os = 'Windows XP';
}elseif (eregi('win', $agent) && eregi('nt 5.2', $agent)){
$os = 'Windows 2003';
}elseif (eregi('win', $agent) && eregi('nt 5', $agent)){
$os = 'Windows 2000';
}elseif (eregi('win', $agent) && eregi('nt', $agent)){
$os = 'Windows NT';
}elseif (eregi('win', $agent) && ereg('32', $agent)){
$os = 'Windows 32';
}elseif (eregi('linux', $agent)){
$os = 'Linux';
}elseif (eregi('unix', $agent)){
$os = 'Unix';
}elseif (eregi('sun', $agent) && eregi('os', $agent)){
$os = 'SunOS';
}elseif (eregi('ibm', $agent) && eregi('os', $agent)){
$os = 'IBM OS/2';
}elseif (eregi('Mac', $agent) && eregi('PC', $agent)){
$os = 'Macintosh';
}elseif (eregi('PowerPC', $agent)){
$os = 'PowerPC';
}elseif (eregi('AIX', $agent)){
$os = 'AIX';
}elseif (eregi('HPUX', $agent)){
$os = 'HPUX';
}elseif (eregi('NetBSD', $agent)){
$os = 'NetBSD';
}elseif (eregi('BSD', $agent)){
$os = 'BSD';
}elseif (ereg('OSF1', $agent)){
$os = 'OSF1';
}elseif (ereg('IRIX', $agent)){
$os = 'IRIX';
}elseif (eregi('FreeBSD', $agent)){
$os = 'FreeBSD';
}elseif (eregi('teleport', $agent)){
$os = 'teleport';
}elseif (eregi('flashget', $agent)){
$os = 'flashget';
}elseif (eregi('webzip', $agent)){
$os = 'webzip';
}elseif (eregi('offline', $agent)){
$os = 'offline';
}else{
$os = 'Unknown';
}
return $os;
}
php通过$_SERVER['HTTP_USER_AGENT']获取浏览器相关参数的更多相关文章
- php通过$_SERVER['HTTP_USER_AGENT']获取浏览器useAgent
php通过$_SERVER['HTTP_USER_AGENT']获取浏览器useAgent
- Asp获取网址相关参数大全
Asp获取网址相关参数大全 代码一:[获取地址中的文件名,不包含扩展名]<%dim Url,FileName,File Url=split(request.servervariables(& ...
- 获取浏览器url参数
//获取浏览器url参数 var methods ={ getQueryString: function (name) { var reg = new RegExp('(^|&)' + nam ...
- vue获取浏览器地址栏参数(?及/)路由+非路由实现方式
1.? 参数 浏览器参数形式:http://javam4.com/m4detail?id=1322914793170014208 1.1.路由取参方式 this.$route.query.id 前端跳 ...
- jquery获取浏览器URL参数
getRequestParams:function(param){ var reg = new RegExp("(^|&)" + param + "=([^&am ...
- 【转】javascript浏览器参数的操作,js获取浏览器参数
原文地址:http://www.haorooms.com/post/js_url_canshu html5修改浏览器地址:http://www.cnblogs.com/JiangXiaoTian/ar ...
- 判断浏览器的类型$_SERVER['HTTP_USER_AGENT']和语言$_SERVER['HTTP_ACCEPT_LANGUAGE']
判断浏览器类型: $_SERVER["HTTP_USER_AGENT"] 判断浏览器类型的具体程序如下: <?php if(strpos($_SERVER["HTT ...
- 获取浏览器中url的参数
例如: 浏览器的地址是:http://localhost:8080/src/views/moneyDetail?id=10 vue 获取浏览器的参数 获取id的参数:this.$route.query ...
- jqure 获取地址栏的参数
从一个页面跳转到另外一个页面传参,我们用jqure得到参数需要两部分: 处理浏览器地址栏参数的方法: function GetQueryString(name) { var reg = new Reg ...
随机推荐
- web端图片文件直传
采用JS客户端直接签名有一个很严重的安全隐患.就是OSS AccessId/AccessKey暴露在前端页面.可以随意拿到AccessId/AccessKey,这是非常不安全的做法. 本文将此例子进化 ...
- PHP 作用域
- python读取xls文件
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2018/10/17 14:41 # @Author : Sa.Song # @Desc ...
- POJ3320 尺取法的正确使用法
一.前言及题意: 最近一直在找题训练,想要更加系统的补补思维,补补漏洞什么的,以避免被个类似于脑筋急转弯的题目干倒,于是在四处找书,找了红书.蓝书,似乎都有些不尽如人意.这两天看到了日本人的白书,重新 ...
- Median of Two Sorted Arrays LeetCode Java
两排序好的数组,找中位数 描述There are two sorted arrays A and B of size m and n respectively. Find the median of ...
- Android 有些机型hint不显示
这个问题就是有些手机型号,hint字体正好和你的背景色一样,不如你的背景色是白色, 因为大多数的系统,hint都是灰色,所以可以显示,有些手机他妈的就是hint默认字体是白色,结果显示不出来. 那么就 ...
- Apache shiro学习总结
Apache shiro集群实现 (一) shiro入门介绍 Apache shiro集群实现 (二) shiro 的INI配置 Apache shiro集群实现 (三)shiro身份认证(Shiro ...
- 设计模式之第6章-迭代器模式(Java实现)
设计模式之第6章-迭代器模式(Java实现) “我已经过时了,就不要讲了吧,现在java自带有迭代器,还有什么好讲的呢?”“虽然已经有了,但是具体细节呢?知道实现机理岂不美哉?”“好吧好吧.”(迭代器 ...
- 使用 NPC,NPCManager 在 XNA 中创建 NPC(十九)
平方已经开发了一些 Windows Phone 上的一些游戏,算不上什么技术大牛.在这里分享一下经验,仅为了和各位朋友交流经验.平方会逐步将自己编写的类上传到托管项目中,没有什么好名字,就叫 WPXN ...
- 模板与c++11--右值引用
函数参数传递 struct huge_data{ char *content; unsigned sz; huge_data():content(),sz(){ cout<<this< ...