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 相关文章推荐
浅谈PHP语法(1)
Oct 09 PHP
修改了一个很不错的php验证码(支持中文)
Feb 14 PHP
php面向对象全攻略 (三)特殊的引用“$this”的使用
Sep 30 PHP
php写的简易聊天室代码
Jun 04 PHP
php定义参数数量可变的函数用法实例
Mar 16 PHP
PHP使用逆波兰式计算工资的方法
Jul 29 PHP
php使用自定义函数实现汉字分割替换功能示例
Jan 30 PHP
php安装dblib扩展,连接mssql的具体步骤
Mar 02 PHP
php 数据结构之链表队列
Oct 17 PHP
php闭包中使用use声明变量的作用域实例分析
Aug 09 PHP
php 比较获取两个数组相同和不同元素的例子(交集和差集)
Oct 18 PHP
laravel返回统一格式错误码问题
Nov 04 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+mcDropdown实现文件路径可在下拉框选择
2013/08/07 PHP
php多文件上传下载示例分享
2014/02/20 PHP
destoon官方标签大全
2014/06/20 PHP
PHP魔术方法__GET、__SET使用实例
2014/11/25 PHP
CentOS下与Apache连接的PHP多版本共存方案实现详解
2015/12/19 PHP
javascript jQuery插件练习
2008/12/24 Javascript
Javascript String对象扩展HTML编码和解码的方法
2009/06/02 Javascript
JQuery Ajax 跨域访问的解决方案
2010/03/12 Javascript
jquery中获得$.ajax()事件返回的值并添加事件的方法
2010/04/15 Javascript
js+css实现tab菜单切换效果的方法
2015/01/20 Javascript
JS动画效果打开、关闭层的实现方法
2015/05/09 Javascript
浅谈javascript中的加减时间
2016/07/12 Javascript
Javascript实现前端简单的路由实例
2016/09/11 Javascript
Centos7 中 Node.js安装简单方法
2016/11/02 Javascript
Vue.js双向绑定操作技巧(初级入门)
2016/12/27 Javascript
JS控件bootstrap suggest plugin使用方法详解
2017/03/25 Javascript
Textarea输入字数限制实例(兼容iOS&amp;安卓)
2017/07/06 Javascript
JS库particles.js创建超炫背景粒子插件(附源码下载)
2017/09/13 Javascript
vue-video-player 通过自定义按钮组件实现全屏切换效果【推荐】
2018/08/29 Javascript
原生JS实现天气预报
2020/06/16 Javascript
[00:58]他们到底在电话里听到了什么?
2017/11/21 DOTA
[01:46]新英雄登场
2019/09/10 DOTA
简单文件操作python 修改文件指定行的方法
2013/05/15 Python
对于Python异常处理慎用“except:pass”建议
2015/04/02 Python
Python3学习笔记之列表方法示例详解
2017/10/06 Python
Python中的pack和unpack的使用
2018/03/12 Python
Python 安装 virturalenv 虚拟环境的教程详解
2020/02/21 Python
python判断两个序列的成员是否一样的实例代码
2020/03/01 Python
体育老师的教学自我评价分享
2013/11/19 职场文书
小学体育教学反思
2014/01/31 职场文书
素食餐饮项目创业计划书
2014/02/02 职场文书
《夏夜多美》教学反思
2014/02/17 职场文书
求职简历自我评价范例
2014/03/12 职场文书
违反纪律检讨书范文
2015/05/07 职场文书
老人院义工活动感想
2015/08/07 职场文书
winserver2019安装软件一直卡在应用程序正在为首次使用做准备
2022/06/10 Servers