php函数实现判断是否移动端访问


Posted in PHP onMarch 03, 2015

忘记在哪里获取的函数了,刚才不了心在一个包里面找到,临时保存起来

/**

 * 是否移动端访问访问

 *

 * @return bool

 */

function isMobile()

{ 

    // 如果有HTTP_X_WAP_PROFILE则一定是移动设备

    if (isset ($_SERVER['HTTP_X_WAP_PROFILE']))

    {

        return true;

    } 

    // 如果via信息含有wap则一定是移动设备,部分服务商会屏蔽该信息

    if (isset ($_SERVER['HTTP_VIA']))

    { 

        // 找不到为flase,否则为true

        return stristr($_SERVER['HTTP_VIA'], "wap") ? true : false;

    } 

    // 脑残法,判断手机发送的客户端标志,兼容性有待提高

    if (isset ($_SERVER['HTTP_USER_AGENT']))

    {

        $clientkeywords = array ('nokia',

            'sony',

            'ericsson',

            'mot',

            'samsung',

            'htc',

            'sgh',

            'lg',

            'sharp',

            'sie-',

            'philips',

            'panasonic',

            'alcatel',

            'lenovo',

            'iphone',

            'ipod',

            'blackberry',

            'meizu',

            'android',

            'netfront',

            'symbian',

            'ucweb',

            'windowsce',

            'palm',

            'operamini',

            'operamobi',

            'openwave',

            'nexusone',

            'cldc',

            'midp',

            'wap',

            'mobile'

            ); 

        // 从HTTP_USER_AGENT中查找手机浏览器的关键字

        if (preg_match("/(" . implode('|', $clientkeywords) . ")/i", strtolower($_SERVER['HTTP_USER_AGENT'])))

        {

            return true;

        } 

    } 

    // 协议法,因为有可能不准确,放到最后判断

    if (isset ($_SERVER['HTTP_ACCEPT']))

    { 

        // 如果只支持wml并且不支持html那一定是移动设备

        // 如果支持wml和html但是wml在html之前则是移动设备

        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'))))

        {

            return true;

        } 

    } 

    return false;

}

非常简单实用的函数,分享给大家,希望大家能够喜欢。

PHP 相关文章推荐
discuz7 phpMysql操作类
Jun 21 PHP
PHP中foreach循环中使用引用要注意的地方
Jan 02 PHP
LotusPhp笔记之:Cookie组件的使用详解
May 06 PHP
使用php将某个目录下面的所有文件罗列出来的方法详解
Jun 21 PHP
ThinkPHP使用心得分享-上传类UploadFile的使用
May 15 PHP
CodeIgniter CLI模式简介
Jun 17 PHP
ecshop实现smtp发送邮件
Feb 03 PHP
WordPress中获取所使用的模板的页面ID的简单方法
Dec 31 PHP
[原创]PHP实现生成vcf vcard文件功能类定义与使用方法详解【附demo源码下载】
Sep 02 PHP
PHP文件后缀不强制为.php方法
Mar 31 PHP
PHP常见过waf webshell以及最简单的检测方法
May 21 PHP
PHP pthreads v3下的Volatile简介与使用方法示例
Feb 21 PHP
php中instanceof 与 is_a()区别分析
Mar 03 #PHP
PHP中大于2038年时间戳的问题处理方案
Mar 03 #PHP
ecshop 2.72如何修改后台访问地址
Mar 03 #PHP
PHP自带ZIP压缩、解压缩类ZipArchiv使用指南
Mar 03 #PHP
ecshop后台编辑器替换成ueditor编辑器
Mar 03 #PHP
php使用curl出现Expect:100-continue解决方法
Mar 03 #PHP
php实现四舍五入的方法小结
Mar 03 #PHP
You might like
几个有用的php字符串过滤,转换函数代码
2012/05/01 PHP
php中JSON的使用方法
2015/04/30 PHP
PHP批量去除BOM头代码分享
2015/06/26 PHP
PHP array_reverse() 函数原理及实例解析
2020/07/14 PHP
用js实现的一个Flash滚动轮换显示图片代码生成器
2007/03/14 Javascript
html a标签-超链接中confirm方法使用介绍
2013/01/04 Javascript
Javascript中常见的校验如域名、手机、邮箱等等
2014/01/02 Javascript
JavaScript小技巧整理篇(非常全)
2016/01/26 Javascript
深入浅析javascript中的作用域(推荐)
2016/07/19 Javascript
JS设置CSS样式的方式汇总
2017/01/21 Javascript
100行代码理解和分析vue2.0响应式架构
2017/03/09 Javascript
详解angularjs 关于ui-router分层使用
2017/06/12 Javascript
JavaScript学习总结(一) ECMAScript、BOM、DOM(核心、浏览器对象模型与文档对象模型)
2018/01/07 Javascript
Vue绑定内联样式问题
2018/10/17 Javascript
vue+SSM实现验证码功能
2018/12/07 Javascript
layui中select,radio设置不生效的解决方法
2019/09/05 Javascript
JS实现判断移动端PC端功能
2020/02/21 Javascript
vue样式穿透 ::v-deep的具体使用
2020/06/04 Javascript
JS+CSS实现过渡特效
2021/01/02 Javascript
[42:48]完美世界DOTA2联赛PWL S3 Magma vs INK ICE 第二场 12.11
2020/12/16 DOTA
[55:39]DOTA2-DPC中国联赛 正赛 VG vs LBZS BO3 第二场 1月19日
2021/03/11 DOTA
Python urllib模块urlopen()与urlretrieve()详解
2013/11/01 Python
Python简单连接MongoDB数据库的方法
2016/03/15 Python
Python语言实现百度语音识别API的使用实例
2017/12/13 Python
Python实现将多个空格换为一个空格.md的方法
2018/12/20 Python
Ubuntu16.04安装python3.6.5步骤详解
2020/01/10 Python
python读取与处理netcdf数据方式
2020/02/14 Python
python 使用paramiko模块进行封装,远程操作linux主机的示例代码
2020/12/03 Python
整理HTML5的一些新特性与Canvas的常用属性
2016/01/29 HTML / CSS
玩具反斗城葡萄牙官方商城:Toys"R"Us葡萄牙
2016/10/21 全球购物
四风问题自查自纠工作情况报告
2014/10/28 职场文书
幼儿园教师考核评语
2014/12/31 职场文书
公司庆典欢迎词
2015/01/26 职场文书
长城的导游词
2015/01/30 职场文书
毕业生爱心捐书倡议书
2015/04/27 职场文书
ConstraintValidator类如何实现自定义注解校验前端传参
2021/06/18 Java/Android