博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP判断访问者手机移动端还是PC端的函数,亲测好用
阅读量:7221 次
发布时间:2019-06-29

本文共 2132 字,大约阅读时间需要 7 分钟。

,用手机访问PC端WWW域名的时候,自动判断跳转到移动端,用电脑访问M域名手机网站的时候,自动跳转到PC端,

我们团队在开发erdaicms二代旅游CMS网站管理系统的时候(),分别开发了PC端和手机端,需要实现,用手机访问PC端WWW域名的时候,自动判断跳转到移动端,用电脑访问M域名手机网站的时候,自动跳转到PC端,于是有了下面这个判断函数:

 

1 /*移动端判断*/ 2 function isMobile() 3 {  4     // 如果有HTTP_X_WAP_PROFILE则一定是移动设备 5     if (isset ($_SERVER['HTTP_X_WAP_PROFILE'])) 6     { 7         return true; 8     }  9     // 如果via信息含有wap则一定是移动设备,部分服务商会屏蔽该信息10     if (isset ($_SERVER['HTTP_VIA']))11     { 12         // 找不到为flase,否则为true13         return stristr($_SERVER['HTTP_VIA'], "wap") ? true : false;14     } 15     // 脑残法,判断手机发送的客户端标志,兼容性有待提高16     if (isset ($_SERVER['HTTP_USER_AGENT']))17     {18         $clientkeywords = array ('nokia',19             'sony',20             'ericsson',21             'mot',22             'samsung',23             'htc',24             'sgh',25             'lg',26             'sharp',27             'sie-',28             'philips',29             'panasonic',30             'alcatel',31             'lenovo',32             'iphone',33             'ipod',34             'blackberry',35             'meizu',36             'android',37             'netfront',38             'symbian',39             'ucweb',40             'windowsce',41             'palm',42             'operamini',43             'operamobi',44             'openwave',45             'nexusone',46             'cldc',47             'midp',48             'wap',49             'mobile'50             ); 51         // 从HTTP_USER_AGENT中查找手机浏览器的关键字52         if (preg_match("/(" . implode('|', $clientkeywords) . ")/i", strtolower($_SERVER['HTTP_USER_AGENT'])))53         {54             return true;55         } 56     } 57     // 协议法,因为有可能不准确,放到最后判断58     if (isset ($_SERVER['HTTP_ACCEPT']))59     { 60         // 如果只支持wml并且不支持html那一定是移动设备61         // 如果支持wml和html但是wml在html之前则是移动设备62         if ((strpos($_SERVER['HTTP_ACCEPT'], 'vnd.wap.wml') !== false) && (strpos($_SERVER['HTTP_ACCEPT'], 'text/html') === false || (strpos($_SERVER['HTTP_ACCEPT'], 'vnd.wap.wml') < strpos($_SERVER['HTTP_ACCEPT'], 'text/html'))))63         {64             return true;65         } 66     } 67     return false;68 }

 

转载地址:http://qyhym.baihongyu.com/

你可能感兴趣的文章
多个维度讲解网站打开速度seo优化的措施
查看>>
java.lang.ClassFormatError
查看>>
bash/shell编程学习(2)
查看>>
部门管理制度、规范的建议
查看>>
HTAP数据库 PostgreSQL 场景与性能测试之 12 - (OLTP) 字符串搜索 - 前后模糊查询
查看>>
你还不知道手机精灵?Out啦!
查看>>
嵌入式 VFS: Cannot open root device "mtdblock2" or unknown-block(2,0)
查看>>
规则引擎是什么?最简单的解释
查看>>
水平分库分表的关键步骤和技术难点
查看>>
笔记:Automated Journey Testing with Cascade
查看>>
android JNI的.so库调用
查看>>
在activex控件工程中使用directshow,编译时link错误的解决方法
查看>>
同样的promise,调用方法不一样,执行顺序不一样
查看>>
java-设计模式-责任链
查看>>
为什么有网站网上却还搜不到?
查看>>
设计模式:建造者模式(Builder)
查看>>
虚拟化技术专场"黑科技"解读回顾
查看>>
MVVM(Knockout.js)的新尝试:多个Page,一个ViewModel
查看>>
一个简单的storyboard示例,其中关于添加navigation的部分可以学习,此前没用过...
查看>>
浅析传统关系数据库面临大数据的挑战
查看>>