• PHP判断访问设备是手机还是PC


    <?php

    if(!isMobile()){

    echo "这是手机端";

    }else{

    echo "这是电脑端";

    }

    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那一定是app

    //如果支持wml和html但是wml在html之前则是app

    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;

            }

        }

    }

    ?>

    文章来源:微笔记_博客

  • 相关阅读:
    深入理解C++ 11新特性:1)
    Effective Java 第三版:1)
    Java 8 实战:2)
    MyBatis Plus
    Java 8 实战:1)
    十二要素应用宣言
    Dubbo 2):源码级
    [SCOI2009]windy数 数位dp
    [ZJOI2006]物流运输 最短路 动态规划
    [ZJOI2008]骑士
  • 原文地址:https://www.cnblogs.com/www-vnote-net/p/5709073.html
Copyright © 2020-2023  润新知