zoukankan      html  css  js  c++  java
  • [moka同学笔记转载]获取访问者信息--------$_SERVER['HTTP_USER_AGENT'] 用法介绍

    在php中HTTP_USER_AGENT是用来获取用户相关信息,包括了用户浏览器,操作系统工程,是否安装了alex toolbar条哦,等信息,有需要了解的朋友可参考。


    1.用户访问服务器时,利用PHP的超级全局变量$_SERVER数组中字段['HTTP_USER_AGENT'] 获取访问用户的所有信息

     代码如下 复制代码

    <?php 
     echo $_SERVER['HTTP_USER_AGENT'];
     ?>

    输出结果

    Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; InfoPath.2; AskTbPTV/5.17.0.25589; Alexa Toolbar)

    2.利用正则表达式匹配以上字符串,用户的浏览器 操作系统信息

    3.PHP根据匹配后的字符串(用户的浏览器 操作系统信息),分配需要的CSS文件,JS等等…返回给用户

    我的浏览器 操作系统信息
    Browser: Chrome 5.0

    Platform: Windows 7

     代码如下 复制代码

    <?php

    //显示访问用户的浏览器信息
    echo 'Browser: ' . determinebrowser($Agent) . '<BR>';
    //显示访问用户的操作系统平台
    echo 'Platform: ' . determineplatform($Agent). '<BR>';

    //正值表达式比对解析$_SERVER['HTTP_USER_AGENT']中的字符串 获取访问用户的浏览器的信息
    function determinebrowser ($Agent) {
    $browseragent="";   //浏览器
    $browserversion=""; //浏览器的版本
    if (ereg('MSIE ([0-9].[0-9]{1,2})',$Agent,$version)) {
     $browserversion=$version[1];
     $browseragent="Internet Explorer";
    } else if (ereg( 'Opera/([0-9]{1,2}.[0-9]{1,2})',$Agent,$version)) {
     $browserversion=$version[1];
     $browseragent="Opera";
    } else if (ereg( 'Firefox/([0-9.]{1,5})',$Agent,$version)) {
     $browserversion=$version[1];
     $browseragent="Firefox";
    }else if (ereg( 'Chrome/([0-9.]{1,3})',$Agent,$version)) {
     $browserversion=$version[1];
     $browseragent="Chrome";
    }
    else if (ereg( 'Safari/([0-9.]{1,3})',$Agent,$version)) {
     $browseragent="Safari";
     $browserversion="";
    }
    else {
    $browserversion="";
    $browseragent="Unknown";
    }
    return $browseragent." ".$browserversion;
    }

    // 同理获取访问用户的浏览器的信息
    function determineplatform ($Agent) {
    $browserplatform=='';
    if (eregi('win',$Agent) && strpos($Agent, '95')) {
    $browserplatform="Windows 95";
    }
    elseif (eregi('win 9x',$Agent) && strpos($Agent, '4.90')) {
    $browserplatform="Windows ME";
    }
    elseif (eregi('win',$Agent) && ereg('98',$Agent)) {
    $browserplatform="Windows 98";
    }
    elseif (eregi('win',$Agent) && eregi('nt 5.0',$Agent)) {
    $browserplatform="Windows 2000";
    }
    elseif (eregi('win',$Agent) && eregi('nt 5.1',$Agent)) {
    $browserplatform="Windows XP";
    }
    elseif (eregi('win',$Agent) && eregi('nt 6.0',$Agent)) {
    $browserplatform="Windows Vista";
    }
    elseif (eregi('win',$Agent) && eregi('nt 6.1',$Agent)) {
    $browserplatform="Windows 7";
    }
    elseif (eregi('win',$Agent) && ereg('32',$Agent)) {
    $browserplatform="Windows 32";
    }
    elseif (eregi('win',$Agent) && eregi('nt',$Agent)) {
    $browserplatform="Windows NT";
    }elseif (eregi('Mac OS',$Agent)) {
    $browserplatform="Mac OS";
    }
    elseif (eregi('linux',$Agent)) {
    $browserplatform="Linux";
    }
    elseif (eregi('unix',$Agent)) {
    $browserplatform="Unix";
    }
    elseif (eregi('sun',$Agent) && eregi('os',$Agent)) {
    $browserplatform="SunOS";
    }
    elseif (eregi('ibm',$Agent) && eregi('os',$Agent)) {
    $browserplatform="IBM OS/2";
    }
    elseif (eregi('Mac',$Agent) && eregi('PC',$Agent)) {
    $browserplatform="Macintosh";
    }
    elseif (eregi('PowerPC',$Agent)) {
    $browserplatform="PowerPC";
    }
    elseif (eregi('AIX',$Agent)) {
    $browserplatform="AIX";
    }
    elseif (eregi('HPUX',$Agent)) {
    $browserplatform="HPUX";
    }
    elseif (eregi('NetBSD',$Agent)) {
    $browserplatform="NetBSD";
    }
    elseif (eregi('BSD',$Agent)) {
    $browserplatform="BSD";
    }
    elseif (ereg('OSF1',$Agent)) {
    $browserplatform="OSF1";
    }
    elseif (ereg('IRIX',$Agent)) {
    $browserplatform="IRIX";
    }
    elseif (eregi('FreeBSD',$Agent)) {
    $browserplatform="FreeBSD";
    }
    if ($browserplatform=='') {$browserplatform = "Unknown"; }
    return $browserplatform;
    }

    ?>

    判断浏览器语言的具体程序如下

     代码如下 复制代码

    <?php
    $lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 4); //只取前4位,这样只判断最优先的语言。如果取前5位,可能出现en,zh的情况,影响判断。  
    if (preg_match("/zh-c/i", $lang))  
    echo "简体中文";  
    else if (preg_match("/zh/i", $lang))  
    echo "繁?中文";  
    else if (preg_match("/en/i", $lang))  
    echo "English";  
    else if (preg_match("/fr/i", $lang))  
    echo "French";  
    else if (preg_match("/de/i", $lang))  
    echo "German";  
    else if (preg_match("/jp/i", $lang))  
    echo "Japanese";  
    else if (preg_match("/ko/i", $lang))  
    echo "Korean";  
    else if (preg_match("/es/i", $lang))  
    echo "Spanish";  
    else if (preg_match("/sv/i", $lang))  
    echo "Swedish";  
    else echo $_SERVER["HTTP_ACCEPT_LANGUAGE"];  
    ?>

    判断浏览器类型主要是靠分析_SERVER["HTTP_USER_AGENT"]的内容,而分析浏览器语言则是分析_SERVER["HTTP_ACCEPT_LANGUAGE"]。

    原文地址:http://www.php230.com/1409465701.html

  • 相关阅读:
    关于Linux测试题
    Linux常用命令按功能统一总结
    关于Eclipse的Save时的自定义操作
    关于产品版本英语缩写
    关于location.href几种用法的区别
    关于Java多态的总结.
    关于JDK中正则表达式
    关于JDK中的集合总结(三)
    关于JDK中的集合总结(二)
    关于JDK中的集合总结(一)
  • 原文地址:https://www.cnblogs.com/hsd1727728211/p/6380799.html
Copyright © 2011-2022 走看看