自定义判断客户端类型函数
2016-02-23 15:17
555 查看
function client_type(){ $_SERVER['ALL_HTTP'] = isset($_SERVER['ALL_HTTP']) ? $_SERVER['ALL_HTTP'] : ''; $mobile_browser = '0'; if(preg_match('/(up.browser|up.link|mmp|symbian|smartphone|midp|wap|phone|iphone|ipad|ipod|android|xoom)/i', strtolower($_SERVER['HTTP_USER_AGENT']))) $mobile_browser++; if((isset($_SERVER['HTTP_ACCEPT'])) and (strpos(strtolower($_SERVER['HTTP_ACCEPT']),'application/vnd.wap.xhtml+xml') !== false)) $mobile_browser++; if(isset($_SERVER['HTTP_X_WAP_PROFILE'])) $mobile_browser++; if(isset($_SERVER['HTTP_PROFILE'])) $mobile_browser++; $mobile_ua = strtolower(substr($_SERVER['HTTP_USER_AGENT'],0,4)); $mobile_agents = array( 'w3c ','acs-','alav','alca','amoi','audi','avan','benq','bird','blac', 'blaz','brew','cell','cldc','cmd-','dang','doco','eric','hipt','inno', 'ipaq','java','jigs','kddi','keji','leno','lg-c','lg-d','lg-g','lge-', 'maui','maxo','midp','mits','mmef','mobi','mot-','moto','mwbp','nec-', 'newt','noki','oper','palm','pana','pant','phil','play','port','prox', 'qwap','sage','sams','sany','sch-','sec-','send','seri','sgh-','shar', 'sie-','siem','smal','smar','sony','sph-','symb','t-mo','teli','tim-', 'tosh','tsm-','upg1','upsi','vk-v','voda','wap-','wapa','wapi','wapp', 'wapr','webc','winw','winw','xda','xda-' ); if(in_array($mobile_ua, $mobile_agents)) $mobile_browser++; if(strpos(strtolower($_SERVER['ALL_HTTP']), 'operamini') !== false) $mobile_browser++; if(strpos(strtolower($_SERVER['HTTP_USER_AGENT']), 'windows') !== false) $mobile_browser=0; if(strpos(strtolower($_SERVER['HTTP_USER_AGENT']), 'windows phone') !== false) $mobile_browser++; if($mobile_browser>0){ if(strpos($_SERVER['HTTP_USER_AGENT'], 'iPhone')||strpos($_SERVER['HTTP_USER_AGENT'], 'iPad')){ return 'IOS'; }else if(strpos($_SERVER['HTTP_USER_AGENT'], 'Android')){ return 'Android'; } }else{ return 'pc'; } }
相关文章推荐
- iOS开发之AsyncSocket使用
- 【Android动画】简单的组合动画按钮
- [Scala学习笔记]伴生对象和伴生类
- Cocos2d-x开发FlappyBird01-环境变量配置和测试案例运行
- Unix高级IO之非阻塞I/O
- PHP框架实现数据库连贯查询的思路解析
- 最优化问题简介
- Spark Streaming job 远程debug方法
- 一个粗心的Bug,JSON格式不规范导致AJAX错误
- MySQL Cluster 7.0 +LVS 构建高可用环境
- GTK+窗口只弹出一次
- 全局调度-Quick-Cocos2dx
- 细聊分布式ID生成方法
- 转:Delphi XE4 语言变化 [Weak] [Unsafe]
- three.js 给立方体设置边框
- android系统版本与VERSION_CODES 值
- Android学习系列之控件 AutoCompleteTextView邮箱后缀自动补全
- uvaoj-400:Unix Is
- 创建安卓app的30个经验教训
- Engine中如何实现鼠标滚轮缩放反置?