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 define函数的使用说明
Aug 27 PHP
php 中的4种标记风格介绍
May 10 PHP
php使用smtp发送支持附件的邮件示例
Apr 13 PHP
php类中的各种拦截器用法分析
Nov 03 PHP
dedecms中使用php语句指南
Nov 13 PHP
php新浪微博登录接口用法实例
Dec 23 PHP
php使用CutyCapt实现网页截图保存的方法
Oct 03 PHP
php实用代码片段整理
Nov 12 PHP
Thinkphp事务操作实例(推荐)
Apr 01 PHP
php使用ftp实现文件上传与下载功能
Jul 21 PHP
php实现微信分享朋友链接功能
Feb 18 PHP
Laravel + Elasticsearch 实现中文搜索的方法
Feb 02 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
php5数字型字符串加解密代码
2008/04/24 PHP
php 自写函数代码 获取关键字 去超链接
2010/02/08 PHP
phpMyAdmin 链接表的附加功能尚未激活问题的解决方法(已测)
2012/03/27 PHP
php将mysql数据库整库导出生成sql文件的具体实现
2014/01/08 PHP
Yii框架实现的验证码、登录及退出功能示例
2017/05/20 PHP
laravel框架添加数据,显示数据,返回成功值的方法
2019/10/11 PHP
JQuery自适应IFrame高度(支持嵌套 兼容IE,ff,safafi,chrome)
2011/03/28 Javascript
Prototype源码浅析 Enumerable部分之each方法
2012/01/16 Javascript
解决ExtJS在chrome或火狐中正常显示在ie中不显示的浏览器兼容问题
2013/01/11 Javascript
使用JavaScript修改浏览器URL地址栏的实现代码
2013/10/21 Javascript
jQuery focus和blur事件的应用详解
2014/01/26 Javascript
jQuery实现Twitter的自动文字补齐特效
2014/11/28 Javascript
AngularJS基础 ng-value 指令简单示例
2016/08/03 Javascript
JS实现获取当前URL和来源URL的方法
2016/08/24 Javascript
jQuery插件zTree实现的多选树效果示例
2017/03/08 Javascript
JS自动生成动态HTML验证码页面
2017/06/14 Javascript
AngularJS中scope的绑定策略实例分析
2017/10/30 Javascript
jquery ajax加载数据前台渲染方式 不用for遍历的方法
2018/08/09 jQuery
解决axios发送post请求返回400状态码的问题
2018/08/11 Javascript
koa router 多文件引入的方法示例
2019/05/22 Javascript
[40:31]Secret vs Alliacne 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
Python程序设计入门(3)数组的使用
2014/06/16 Python
Python使用redis pool的一种单例实现方式
2016/04/16 Python
基于python的字节编译详解
2017/09/20 Python
python判断字符串是否是json格式方法分享
2017/11/07 Python
在python3中pyqt5和mayavi不兼容问题的解决方法
2019/01/08 Python
基于python分析你的上网行为 看看你平时上网都在干嘛
2019/08/13 Python
python判断变量是否为列表的方法
2020/09/17 Python
HTML5 Canvas draw方法制作动画效果示例
2013/07/11 HTML / CSS
ABOUT YOU罗马尼亚:超过600个时尚品牌
2019/09/19 全球购物
delegate与普通函数的区别
2014/01/22 面试题
初中生操行评语大全
2014/04/24 职场文书
学校党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
投资合作意向书范本
2015/05/08 职场文书
2015年法务工作总结范文
2015/05/23 职场文书
解决Django transaction进行事务管理踩过的坑
2021/04/24 Python