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源代码
Oct 09 PHP
PHP扩展模块Pecl、Pear以及Perl的区别
Apr 09 PHP
Yii的Srbac插件用法详解
Jul 14 PHP
ThinkPHP框架分布式数据库连接方法详解
Mar 14 PHP
php头像上传预览实例代码
May 02 PHP
PHP实现腾讯与百度坐标转换
Aug 05 PHP
Laravel中日期时间处理包Carbon的简单使用
Sep 21 PHP
详解关于php的xdebug配置(编辑器vscode)
Jan 29 PHP
PHP操作XML中XPath的应用示例
Jul 04 PHP
使用Laravel中的查询构造器实现增删改查功能
Sep 03 PHP
基于laravel where的高级使用方法
Oct 10 PHP
php post换行的方法
Feb 03 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
新安装的MySQL数据库需要注意的安全知识
2008/07/30 PHP
php反射学习之依赖注入示例
2019/06/14 PHP
JQuery 操作select标签实现代码
2010/05/14 Javascript
JQuery的ajax获取数据后的处理总结(html,xml,json)
2010/07/14 Javascript
找出字符串中出现次数最多的字母和出现次数精简版
2012/11/07 Javascript
当json键为数字时的取值方法解析
2013/11/15 Javascript
jquery checkbox实现单选小例
2013/11/27 Javascript
父节点获取子节点的字符串示例代码
2014/02/26 Javascript
jQuery中append()方法用法实例
2014/12/25 Javascript
DOM节点删除函数removeChild()用法实例
2015/01/12 Javascript
prototype.js常用函数详解
2016/06/18 Javascript
JQuery手速测试小游戏实现思路详解
2016/09/20 Javascript
[原创]SyntaxHighlighter自动识别并加载脚本语言
2017/02/07 Javascript
js获取隐藏元素的宽高
2017/02/24 Javascript
详解Vue 实例中的生命周期钩子
2017/03/21 Javascript
写给vue新手们的vue渲染页面教程
2017/09/01 Javascript
vue一个页面实现音乐播放器的示例
2018/02/06 Javascript
详解给Vue2路由导航钩子和axios拦截器做个封装
2018/04/10 Javascript
微信小程序利用Canvas绘制图片和竖排文字详解
2019/06/25 Javascript
jQuery删除/清空指定元素的所有子节点实例代码
2019/07/04 jQuery
详解 javascript对象创建模式
2020/10/30 Javascript
如何利用vue实现波谱拟合详解
2020/11/05 Javascript
重命名批处理python脚本
2013/04/05 Python
python解析xml模块封装代码
2014/02/07 Python
详谈Python中列表list,元祖tuple和numpy中的array区别
2018/04/18 Python
Python操作mongodb数据库的方法详解
2018/12/08 Python
python打造爬虫代理池过程解析
2019/08/15 Python
浅谈Django2.0 加xadmin踩的坑
2019/11/15 Python
用python中的matplotlib绘制方程图像代码
2019/11/21 Python
pytorch 实现在一个优化器中设置多个网络参数的例子
2020/02/20 Python
Python自定义聚合函数merge与transform区别详解
2020/05/26 Python
记录模型训练时loss值的变化情况
2020/06/16 Python
澳大利亚波希米亚风时尚品牌:Tree of Life
2019/09/15 全球购物
初中生期末考试的自我评价
2013/12/17 职场文书
教堂婚礼主持词
2014/03/14 职场文书
Python利用机器学习算法实现垃圾邮件的识别
2021/06/28 Python