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 相关文章推荐
多重?l件?合查?(一)
Oct 09 PHP
php桌面中心(四) 数据显示
Mar 11 PHP
php discuz 主题表和回帖表的设计
Mar 13 PHP
php操作mysql数据库的基本类代码
Feb 25 PHP
PHP文件大小格式化函数合集
Mar 10 PHP
又一个PHP实现的冒泡排序算法分享
Aug 21 PHP
PHP比你想象的好得多
Nov 27 PHP
Laravel路由设定和子路由设定实例分析
Mar 30 PHP
php自定义函数实现统计中文字符串长度的方法小结
Apr 15 PHP
PHP基于递归算法解决兔子生兔子问题
May 11 PHP
yii 框架实现按天,月,年,自定义时间段统计数据的方法分析
Apr 04 PHP
PHP实现本地图片转base64格式并上传
May 29 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
支持数组的ADDSLASHES的php函数
2010/02/16 PHP
百度地图API应用之获取用户的具体位置
2014/06/10 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(三)
2014/06/23 PHP
PHP通过内置函数memory_get_usage()获取内存使用情况
2014/11/20 PHP
php 广告点击统计代码(php+mysql)
2018/02/21 PHP
jquery 经典动画菜单效果代码
2010/01/26 Javascript
JSON 教程 json入门学习笔记
2020/09/22 Javascript
JavaScript去掉数组中的重复元素
2011/01/13 Javascript
jQuery对象数据缓存Cache原理及jQuery.data方法区别介绍
2013/04/07 Javascript
JavaScript实现QueryString获取GET参数的方法
2013/07/02 Javascript
js实现屏幕自适应局部代码分享
2015/01/30 Javascript
JavaScript实现基于Cookie的存储类实例
2015/04/10 Javascript
JavaScript三元运算符的多种使用技巧
2015/04/16 Javascript
Javascript实现检测客户端类型代码封包
2015/12/03 Javascript
理解javascript定时器中的setTimeout与setInterval
2016/02/23 Javascript
如何使用AngularJs打造权限管理系统【简易型】
2016/05/09 Javascript
js获取元素的外链样式的简单实现方法
2016/06/06 Javascript
如何实现星星评价(jquery.raty.js插件)
2016/12/21 Javascript
深入理解AngularJS中的ng-bind-html指令
2017/03/27 Javascript
Vue.js 2.5新特性介绍(推荐)
2017/10/24 Javascript
如何在JavaScript中使用localStorage详情
2021/02/04 Javascript
python函数参数*args**kwargs用法实例
2013/12/04 Python
Python简单日志处理类分享
2015/02/14 Python
深入解析Python编程中JSON模块的使用
2015/10/15 Python
Python语法垃圾回收机制原理解析
2020/03/25 Python
django model的update时auto_now不被更新的原因及解决方式
2020/04/01 Python
在python中使用pyspark读写Hive数据操作
2020/06/06 Python
使用 prometheus python 库编写自定义指标的方法(完整代码)
2020/06/29 Python
浅谈OpenCV中的新函数connectedComponentsWithStats用法
2020/07/05 Python
荷兰在线啤酒店:Beerwulf
2019/08/26 全球购物
外贸学院会计专业应届生求职信
2013/11/14 职场文书
法律进企业活动方案
2014/03/04 职场文书
未婚证明书模板
2014/10/08 职场文书
go语言中json数据的读取和写出操作
2021/04/28 Golang
vue组件冲突之引用另一个组件出现组件不显示的问题
2022/04/13 Vue.js
Java的Object类的九种方法
2022/04/13 Java/Android