石家庄做网站,石家庄网站优化,石家庄网络推广,石家庄网络公司
当前位置:主页 > 新闻资讯 > 技术笔记 >

PHP如何判断是手机访问还是电脑访问

发表日期:2020-09-30 22:38文章编辑:优搜客浏览次数: 标签: php教程|php代码|php源码|    

php判断是手机访问还是电脑访问的方法:
PHP如何判断是手机访问还是电脑访问
1、如果有HTTP_X_WAP_PROFILE则一定是移动设备
//判断电脑还是手机访问
function is_mobile(){
    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;
    }
2、脑残法,判断手机发送的客户端标志,兼容性有待提高
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;
    } 
}
3、协议法,因为有可能不准确,放到最后判断
    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;
}
将以上三端代码按顺序合并,使用的时候直接使用 is_mobile() 方法即可!

如没特殊注明,文章均来自网络!转载请注明来自:https://www.yousouke.com/News/jsbj/11628.html

网站设计案例推荐

热门新闻

DEDECMS提示Fatal error错误

Nginx的Gzip压缩配置

织梦DedeCMS定时自动生成首页HTML的实现方法

IIS7下js文件启用Gzip后却不压缩的解决方法

dede织梦教程:列表页、文章页调用所有顶级栏目文章的方法

WordPress 集成百度 Sitemap 实时推送代码

织梦DedeCMS定时自动生成首页HTML的实现方法

WORDPRESS文章中微信打赏功能的2种实现方法

相关新闻

PHP如何对数组排序并保持键值不变

PHP中子类如何调用父类的静态方法

关于PHP正则匹配中文

php如何修改上传图片大小

帝国CMS用PHP代码实现灵动标签的技巧

推荐新闻

帝国cms如何在tags列表页获取当前tag的ID方法

织梦DedeCMS实现{dede:channel}标签增加数字序号的方法

帝国cms灵动标签调用字母所属的信息

帝国cms怎么实现页面自动生成html

IIS7下js文件启用Gzip后却不压缩的解决方法

织梦DEDECMS教程:添加RSS订阅功能

正确配置 WordPress 邮件SMTP

dede简略标题调用标签

织梦CMS文章模型整合下载功能,可判断点数,会员组等下载权限