zoukankan      html  css  js  c++  java
  • 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;

            }

        }

    }

    ?>

    文章来源:微笔记_博客

  • 相关阅读:
    正则表达式
    Requests库基本使用(转载)
    prometheus + grafana + pushgateway 搭建监控可视化系统
    Docker的系统资源限制(转载)
    DAY8 文件操作
    DAY7 集合,深浅copy
    DAY6 Python之代码块,小数据池的详解
    DAY5 Python基础类型之字典
    DAY4 Python数据类型之列表
    DAY3 python基础之数据类型总览
  • 原文地址:https://www.cnblogs.com/www-vnote-net/p/5709073.html
Copyright © 2011-2022 走看看