zoukankan      html  css  js  c++  java
  • js、php 判断用户终端 、浏览器类型

    js 判断 用户使用终端

    function isMobeil()
    {
        if ((navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i))) {
               alert('手机端')
        }else{
               alert('PC端')
        }
    }

    js 判断用户浏览器类型

    function isBrowser() {
            var userAgent = navigator.userAgent;
            //微信内置浏览器
            if(userAgent.match(/MicroMessenger/i) == 'MicroMessenger') {
                return "Wx";
            }
            //QQ内置浏览器
            else if(userAgent.match(/QQ/i) == 'QQ') {
                return "QQ";
            }
            //Chrome
            else if(userAgent.match(/Chrome/i) == 'Chrome') {
                return "Chrome";
            }
            //Opera
            else if(userAgent.match(/Opera/i) == 'Opera') {
                return "Opera";
            }
            //Firefox
            else if(userAgent.match(/Firefox/i) == 'Firefox') {
                return "Firefox";
            }
            //Safari
            else if(userAgent.match(/Safari/i) == 'Safari') {
                return "Safari";
            }
            //IE
            else if(!!window.ActiveXObject || "ActiveXObject" in window) {
                return "IE";
            }
            else {
                return "未定义:"+userAgent;
            }
    }

    php 判断用户使用终端

      //判断用户设备是手机还是 pc,手机端返回 true ,pc 端返回 false
        public function isMobile(){
            // 如果有HTTP_X_WAP_PROFILE则一定是移动设备
            if (isset ($_SERVER['HTTP_X_WAP_PROFILE'])){
                return TRUE;
            }
            // 如果via信息含有wap则一定是移动设备,部分服务商会屏蔽该信息
            if (isset ($_SERVER['HTTP_VIA'])){
                return stristr($_SERVER['HTTP_VIA'], "wap") ? TRUE : FALSE;// 找不到为flase,否则为TRUE
            }
            // 判断手机发送的客户端标志,兼容性有待提高
            if (isset ($_SERVER['HTTP_USER_AGENT'])) {
                $clientkeywords = array (
                    'mobile',
                    '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'
                );
                // 从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 取得用户浏览器类型(大概类型)

    //获取浏览器类型
     public function getBrowser() {
         $agent   = $_SERVER['HTTP_USER_AGENT'];
          if(strpos($agent, 'MicroMessenger') !== false){
                echo "wx";
          }else if(strpos($agent, 'QQ') !== false){
                echo "qq";
          }
          else{
                echo "other";
          }
     }

    php 判断是否是https 连接

    // 如果是https 连接返回true ,否则返回false
    public function isHttps() {
            if ( !empty($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) !== 'off') {
                return true;
            } elseif ( isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https' ) {
                return true;
            } elseif ( !empty($_SERVER['HTTP_FRONT_END_HTTPS']) && strtolower($_SERVER['HTTP_FRONT_END_HTTPS']) !== 'off') {
                return true;
            }
            return false;
        }

    php 获取客户端IP

    /**
     * 获取客户端IP地址
     * @param integer $type 返回类型 0 返回IP地址 1 返回IPV4地址数字
     * @param boolean $adv 是否进行高级模式获取(有可能被伪装) 
     * @return mixed
     */
    function get_client_ip($type = 0,$adv=false) {
        $type       =  $type ? 1 : 0;
        static $ip  =   NULL;
        if ($ip !== NULL) return $ip[$type];
        if($adv){
            if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
                $arr    =   explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
                $pos    =   array_search('unknown',$arr);
                if(false !== $pos) unset($arr[$pos]);
                $ip     =   trim($arr[0]);
            }elseif (isset($_SERVER['HTTP_CLIENT_IP'])) {
                $ip     =   $_SERVER['HTTP_CLIENT_IP'];
            }elseif (isset($_SERVER['REMOTE_ADDR'])) {
                $ip     =   $_SERVER['REMOTE_ADDR'];
            }
        }elseif (isset($_SERVER['REMOTE_ADDR'])) {
            $ip     =   $_SERVER['REMOTE_ADDR'];
        }
        // IP地址合法验证
        $long = sprintf("%u",ip2long($ip));
        $ip   = $long ? array($ip, $long) : array('0.0.0.0', 0);
        return $ip[$type];
    }
  • 相关阅读:
    GitHub代码阅读神器,你值有拥有!
    SpringBoot项目构建成jar运行后,如何正确读取resource下的文件
    基于SpringBoot-Dubbo的微服务快速开发框架
    基于SpringBoot的Web API快速开发基础框架
    野蛮生长的前端,从杂牌军到正规军
    让Redis突破内存大小的限制
    myeclipse 8.5-10.0 安装 svn 方法
    几秒后刷新页面
    不错的Spring学习笔记(转)
    Spring学习笔记(三)-类扫描的注解
  • 原文地址:https://www.cnblogs.com/xuey/p/9441566.html
Copyright © 2011-2022 走看看