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
require(),include(),require_once()和include_once()区别
Mar 27 PHP
实现PHP多线程异步请求的3种方法
Jan 17 PHP
php判断手机访问还是电脑访问示例分享
Jan 20 PHP
smarty表格换行实例
Dec 15 PHP
PHP实现的购物车类实例
Jun 17 PHP
利用PHP自动生成印有用户信息的名片
Aug 01 PHP
PHP打印输出函数汇总
Aug 28 PHP
Django中的cookie与session操作实例代码
Aug 17 PHP
PHP时间处理类操作示例
Sep 05 PHP
PHP的JSON封装、转变及输出操作示例
Sep 27 PHP
浅析PHP反序列化中过滤函数使用不当导致的对象注入问题
Feb 15 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
Views rows style模板重写代码
2011/05/16 PHP
php中stdClass的用法分析
2015/02/27 PHP
Javascript里使用Dom操作Xml
2006/09/20 Javascript
jquery(hide方法)隐藏指定元素实例
2013/11/11 Javascript
javascript获取xml节点的最大值(实现代码)
2013/12/11 Javascript
jquery mobile 移动web(5)
2015/12/20 Javascript
jquery ztree实现树的搜索功能
2016/02/25 Javascript
js滚动条平滑移动示例代码
2016/03/29 Javascript
javascript实现随机生成DIV背景色
2016/06/20 Javascript
springMVC结合AjaxForm上传文件
2016/07/12 Javascript
js利用appendChild对标签进行排序的实现方法
2016/10/16 Javascript
深入理解Angularjs向指令传递数据双向绑定机制
2016/12/31 Javascript
AngularJS Controller作用域
2017/01/09 Javascript
你可能不知道的前端算法之文字避让(inMap)
2018/01/12 Javascript
Vue父组件调用子组件事件方法
2018/02/23 Javascript
Vue 页面状态保持页面间数据传输的一种方法(推荐)
2018/11/01 Javascript
使用vue制作滑动标签
2019/09/21 Javascript
vue点击页面空白处实现保存功能
2019/11/06 Javascript
使用Vue生成动态表单
2019/11/26 Javascript
[48:53]2014 DOTA2华西杯精英邀请赛 5 25 LGD VS VG第一场
2014/05/26 DOTA
python 同时运行多个程序的实例
2019/01/07 Python
python实现淘宝秒杀脚本
2020/06/23 Python
Python 实现数据结构中的的栈队列
2019/05/16 Python
Python 正则表达式 re.match/re.search/re.sub的使用解析
2019/07/22 Python
python3中sorted函数里cmp参数改变详解
2020/03/12 Python
python获取系统内存占用信息的实例方法
2020/07/17 Python
python批量生成身份证号到Excel的两种方法实例
2021/01/14 Python
css3中的calc函数浅析
2018/07/10 HTML / CSS
蒂芙尼澳大利亚官方网站:Tiffany&Co. Australia
2017/08/27 全球购物
中科软测试工程师面试题
2012/06/16 面试题
护理医院见习报告
2014/11/03 职场文书
道歉情书大全
2015/05/12 职场文书
停车场管理制度范本
2015/08/05 职场文书
教您:房贷工资收入证明应该怎么写?
2019/08/19 职场文书
某某幼儿园的教育教学管理调研分析报告
2019/11/29 职场文书
Redis批量生成数据的实现
2022/06/05 Redis