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下实现一个阿拉伯数字转中文数字的函数
Jul 10 PHP
php 抽象类的简单应用
Sep 06 PHP
PHP的加密方式及原理
Jun 14 PHP
基于curl数据采集之单页面并行采集函数get_htmls的使用
Apr 28 PHP
php一维二维数组键排序方法实例总结
Nov 13 PHP
简单解决新浪SAE无法上传文件的问题
May 13 PHP
php中foreach结合curl实现多线程的方法分析
Sep 22 PHP
yii使用bootstrap分页样式的实例
Jan 17 PHP
thinkPHP5.0框架环境变量配置方法
Mar 17 PHP
wordpress自定义标签云与随机获取标签的方法详解
Mar 22 PHP
PHP读取XML文件的方法实例总结【DOMDocument及simplexml方法】
Sep 10 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&amp;mysql(一)
2006/10/09 PHP
为查询结果建立向后/向前按钮
2006/10/09 PHP
php获取汉字首字母的函数
2013/11/07 PHP
PHP编写学校网站上新生注册登陆程序的实例分享
2016/03/21 PHP
thinkphp跨库操作的简单代码实例
2016/09/22 PHP
JS获取IUSR_机器名和IWAM_机器名帐号的密码
2006/12/06 Javascript
不用MOUSEMOVE也能滑动啊
2007/05/23 Javascript
解决jquery .ajax 在IE下卡死问题的解决方法
2009/10/26 Javascript
jquery 弹出登录窗口实现代码
2009/12/24 Javascript
ie支持function.bind()方法实现代码
2012/12/27 Javascript
深入理解JavaScript系列(28):设计模式之工厂模式详解
2015/03/03 Javascript
JavaScript在Android的WebView中parseInt函数转换不正确问题解决方法
2015/04/25 Javascript
JSON字符串和对象之间的转换详解
2015/05/26 Javascript
Bootstrap模仿起筷首页效果
2016/05/09 Javascript
Vue.js基础知识小结
2017/01/13 Javascript
JavaScript日期对象(Date)基本用法示例
2017/01/18 Javascript
JS实现的简单图片切换功能示例【测试可用】
2017/02/14 Javascript
利用ES6实现单例模式及其应用详解
2017/12/09 Javascript
JS实现的JSON数组去重算法示例
2018/04/11 Javascript
vue的常用组件操作方法应用分析
2018/04/13 Javascript
jQuery实现表格的增、删、改操作示例
2019/01/27 jQuery
Vue路由之JWT身份认证的实现方法
2019/08/26 Javascript
js找出5个数中最大的一个数和倒数第二大的数实现方法示例小结
2020/03/04 Javascript
PHP 502bad gateway原因及解决方案
2020/11/13 Javascript
python编程-将Python程序转化为可执行程序[整理]
2007/04/09 Python
Python设计实现的计算器功能完整实例
2017/08/18 Python
Python决策树和随机森林算法实例详解
2018/01/30 Python
Python中三元表达式的几种写法介绍
2019/03/04 Python
基于Python实现视频的人脸融合功能
2020/06/12 Python
意大利奢侈品牌在线精品店:Jole.it
2020/11/23 全球购物
C#面试常见问题
2013/02/25 面试题
文明村创建实施方案
2014/03/27 职场文书
幼儿园工作总结2015
2015/04/01 职场文书
电子表的操作介绍说明书
2019/10/28 职场文书
关于Python使用turtle库画任意图的问题
2022/04/01 Python
Win11运行cmd提示“请求的操作需要提升”的两种解决方法
2022/07/07 数码科技