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 相关文章推荐
深入mysql_fetch_row()与mysql_fetch_array()的区别详解
Jun 05 PHP
PHP获取MSN好友列表类的实现代码
Jun 23 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十五)
Jun 30 PHP
jquery+php+ajax显示上传进度的多图片上传并生成缩略图代码
Oct 15 PHP
php获取textarea的值并处理回车换行的方法
Oct 20 PHP
php实现改变图片直接打开为下载的方法
Apr 14 PHP
PHP的Yii框架中YiiBase入口类的扩展写法示例
Mar 17 PHP
ThinkPHP实现更新数据实例详解(demo)
Jun 29 PHP
php实现当前页面点击下载文件的实例代码
Nov 16 PHP
如何让PHP编码更加好看利于阅读
May 12 PHP
Laravel框架实现文件上传的方法分析
Sep 29 PHP
如何在Mac上通过docker配置PHP开发环境
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
ADODB类使用
2006/11/25 PHP
PHP strtotime函数详解
2009/12/18 PHP
PHP链表操作简单示例
2016/10/15 PHP
PHP使用CURL实现下载文件功能示例
2019/06/03 PHP
js移除事件 js绑定事件实例应用
2012/11/28 Javascript
JQuery入门—JQuery程序的代码风格详细介绍
2013/01/03 Javascript
浅谈javascript六种数据类型以及特殊注意点
2013/12/20 Javascript
javascript记住用户名和登录密码(两种方式)
2015/08/04 Javascript
jQuery实现网页顶部固定导航效果代码
2015/12/24 Javascript
基于JavaScript实现网页倒计时自动跳转代码
2015/12/28 Javascript
理解JS事件循环
2016/01/07 Javascript
js实现表单及时验证功能 用户信息立即验证
2016/09/13 Javascript
详解JS几种变量交换方式以及性能分析对比
2016/11/25 Javascript
JS基于for语句编写的九九乘法表示例
2018/01/04 Javascript
vue2.0 computed 计算list循环后累加值的实例
2018/03/07 Javascript
js中对象和面向对象与Json介绍
2019/01/21 Javascript
小程序登录/注册页面设计的实现代码
2019/05/24 Javascript
基于JS实现一个随机生成验证码功能
2019/05/29 Javascript
js实现for循环跳过undefined值示例
2019/07/02 Javascript
js实现表格数据搜索
2020/08/09 Javascript
python实现从字符串中找出字符1的位置以及个数的方法
2014/08/25 Python
Python新手实现2048小游戏
2015/03/31 Python
Python实现模拟登录及表单提交的方法
2015/07/25 Python
Python 爬虫爬取指定博客的所有文章
2016/02/17 Python
Python实现屏幕截图的代码及函数详解
2016/10/01 Python
实践Vim配置python开发环境
2018/07/02 Python
python列表list保留顺序去重的实例
2018/12/14 Python
纯css3实现走马灯效果
2014/12/26 HTML / CSS
HTML5 创建canvas元素示例代码
2014/06/04 HTML / CSS
美国著名首饰网站:BaubleBar
2016/08/29 全球购物
美国艺术和工艺品商店:Hobby Lobby
2020/12/09 全球购物
嘻哈珠宝品牌:KRKC&CO
2020/10/19 全球购物
销售简历自我评价
2014/01/24 职场文书
优秀团员个人事迹材料
2014/01/29 职场文书
责任书格式
2019/04/18 职场文书
PostgreSQL数据库去除重复数据和运算符的基本查询操作
2022/04/12 PostgreSQL