zoukankan      html  css  js  c++  java
  • php $_SERVER['HTTP_USER_AGENT'] 用法介绍

    在PHP中HTTP_USER_AGENT是用来获取用户的相关信息的,包括用户使用的浏览器,操作系统等信息,

    显示结果为:

    Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.104 Safari/537.36 Core/1.53.2372.400 QQBrowser/9.5.10548.400

    这个时候我们可以用正则表达式来匹配以上字符串,用户的浏览器,操作系统信息

    php根据匹配后的结果,分配需要的CSS文件,JS等

    <?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; } ?>

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

    一般我们可以判断用户当前是否是在微信端中打开 可以如下判断

      private function is_wx_pro() {
    $user_agent = $_SERVER['HTTP_USER_AGENT'];
    if (strpos($user_agent, 'MicroMessenger') === false) { // 非微信浏览器禁止浏览 return false; } else {
    // 微信浏览器,允许访问 preg_match('/.*?(MicroMessenger/([0-9.]+))s*/', $user_agent, $matches);//echo "MicroMessenger";
    echo '<br>Version:'.$matches[2];// 获取版本号
    return true; } }
  • 相关阅读:
    系统维护相关问题
    Python环境维护
    哈希表解决字符串问题
    论文笔记二:《A Tutoral on Spectral Clustering》
    论文笔记之哈希学习比较--《Supervised Hashing with Kernels》《Towards Optimal Binary Code Learning via Ordinal Embedding》《Top Rank Supervised Binary Coding for Visual Search》
    Java中String、StringBuffer、StringBuilder的比较与源 代码分析
    浙大pat1040 Longest Symmetric String(25 分)
    浙大pat1039 Course List for Student(25 分)
    浙大pat---1036 Boys vs Girls (25)
    百炼oj-4151:电影节
  • 原文地址:https://www.cnblogs.com/imnzq/p/6629397.html
Copyright © 2011-2022 走看看