zoukankan      html  css  js  c++  java
  • PHP判断用户是否手机访问

    自定义的函数如下:

    $agent = check_wap();
        if( $agent )
    {
        header('Location: http://www.nowamagic.net');
        exit;
    }
    // check if wap 
    function check_wap(){
        // 先检查是否为wap代理,准确度高
        if(stristr($_SERVER['HTTP_VIA'],"wap")){
        		return true;
        	}
        	// 检查浏览器是否接受 WML.
        	elseif(strpos(strtoupper($_SERVER['HTTP_ACCEPT']),"VND.WAP.WML") > 0){
            return true;
       }
       //检查USER_AGENT
       elseif(preg_match('/(blackberry|configuration/cldc|hp |hp-|htc |htc_|htc-|iemobile|kindle|midp|mmp|motorola|mobile|nokia|opera mini|opera |Googlebot-Mobile|YahooSeeker/M1A1-R2D2|android|iphone|ipod|mobi|palm|palmos|pocket|portalmmm|ppc;|smartphone|sonyericsson|sqh|spv|symbian|treo|up.browser|up.link|vodafone|windows ce|xda |xda_)/i', $_SERVER['HTTP_USER_AGENT'])){
            return true;            
        }
        else{
            return false;   
       }
    }
    

    再来一个从PHP框架剥离的判断是否为手机移动终端的函数:

    <?php  
    
    function is_mobile_request(){   
        $_SERVER['ALL_HTTP'] = isset($_SERVER['ALL_HTTP']) ? $_SERVER['ALL_HTTP'] : '';   
        $mobile_browser = '0';   
        if(preg_match('/(up.browser|up.link|mmp|symbian|smartphone|midp|wap|phone|iphone|ipad|ipod|android|xoom)/i', strtolower($_SERVER['HTTP_USER_AGENT'])))   
            $mobile_browser++;   
        if((isset($_SERVER['HTTP_ACCEPT'])) and (strpos(strtolower($_SERVER['HTTP_ACCEPT']),'application/vnd.wap.xhtml+xml') !== false))   
            $mobile_browser++;   
        if(isset($_SERVER['HTTP_X_WAP_PROFILE']))   
            $mobile_browser++;   
        if(isset($_SERVER['HTTP_PROFILE']))   
            $mobile_browser++;   
        $mobile_ua = strtolower(substr($_SERVER['HTTP_USER_AGENT'],0,4));   
        $mobile_agents = array(   
            'w3c ','acs-','alav','alca','amoi','audi','avan','benq','bird','blac',   
            'blaz','brew','cell','cldc','cmd-','dang','doco','eric','hipt','inno',   
            'ipaq','java','jigs','kddi','keji','leno','lg-c','lg-d','lg-g','lge-',   
            'maui','maxo','midp','mits','mmef','mobi','mot-','moto','mwbp','nec-',   
            'newt','noki','oper','palm','pana','pant','phil','play','port','prox',   
            'qwap','sage','sams','sany','sch-','sec-','send','seri','sgh-','shar',   
            'sie-','siem','smal','smar','sony','sph-','symb','t-mo','teli','tim-',   
            'tosh','tsm-','upg1','upsi','vk-v','voda','wap-','wapa','wapi','wapp',   
            'wapr','webc','winw','winw','xda','xda-'  
            );   
        if(in_array($mobile_ua, $mobile_agents))   
            $mobile_browser++;   
        if(strpos(strtolower($_SERVER['ALL_HTTP']), 'operamini') !== false)   
            $mobile_browser++;   
        // Pre-final check to reset everything if the user is on Windows   
        if(strpos(strtolower($_SERVER['HTTP_USER_AGENT']), 'windows') !== false)   
            $mobile_browser=0;   
        // But WP7 is also Windows, with a slightly different characteristic   
        if(strpos(strtolower($_SERVER['HTTP_USER_AGENT']), 'windows phone') !== false)   
            $mobile_browser++;   
        if($mobile_browser>0)   
            return true;   
        else 
            return false;   
    }
    

      

  • 相关阅读:
    day 66 crm(3) 自创组件stark界面展示数据
    day 65 crm(2) admin源码解析,以及简单的仿造admin组件
    用 Python+nginx+django 打造在线家庭影院
    django -admin 源码解析
    day 64 crm项目(1) admin组件的初识别以及应用
    云链接 接口不允许 情况 解决方法 mysql Host is not allowed to connect to this MySQL server解决方法
    day 56 linux的安装python3 ,虚拟环境,mysql ,redis
    day55 linux 基础以及系统优化
    Codeforces 989 P循环节01构造 ABCD连通块构造 思维对云遮月参考系坐标轴转换
    Codeforces 990 调和级数路灯贪心暴力 DFS生成树两子树差调水 GCD树连通块暴力
  • 原文地址:https://www.cnblogs.com/leedaily/p/8250052.html
Copyright © 2011-2022 走看看