【问题标题】:How to get user agent in PHP如何在 PHP 中获取用户代理
【发布时间】:2012-05-01 21:33:17
【问题描述】:

我正在使用此 JS 代码来了解用户使用的浏览器。

<script>
  document.write(navigator.appName);
</script>

我想将这个 navigator.appName 转换为 php 代码,以便像这样使用它:

if ($appName == "Internet Explorer") {
  // blabla
}

我该怎么做?

【问题讨论】:

标签: php user-agent


【解决方案1】:

PHP 8 有这个功能$_SERVER['HTTP_SEC_CH_UA']Sec-CH-UA 让你直接检测浏览器名称

if (  strpos ( $_SERVER['HTTP_SEC_CH_UA'],'Opera'   ){
       //        
    }

【讨论】:

    【解决方案2】:

    我用:

    <?php
    $agent = $_SERVER["HTTP_USER_AGENT"];
    
    if( preg_match('/MSIE (\d+\.\d+);/', $agent) ) {
      echo "You're using Internet Explorer";
    } else if (preg_match('/Chrome[\/\s](\d+\.\d+)/', $agent) ) {
      echo "You're using Chrome";
    } else if (preg_match('/Edge\/\d+/', $agent) ) {
      echo "You're using Edge";
    } else if ( preg_match('/Firefox[\/\s](\d+\.\d+)/', $agent) ) {
      echo "You're using Firefox";
    } else if ( preg_match('/OPR[\/\s](\d+\.\d+)/', $agent) ) {
      echo "You're using Opera";
    } else if (preg_match('/Safari[\/\s](\d+\.\d+)/', $agent) ) {
      echo "You're using Safari";
    }
    

    【讨论】:

      【解决方案3】:

      你也可以使用php原生函数get_browser()

      重要提示: 你应该有一个 browscap.ini 文件。

      【讨论】:

      • 这需要您拥有最新的 browscap.ini 文件
      • 确实如此,并且有很多在线资源可供您为您的网站下载一个,例如browscap.org
      • 返回 null 或 false
      • 确保你有一个 browscap.ini 文件
      【解决方案4】:

      如果您想将数据从客户端传递到服务器,您可以使用 jQuery ajax 方法link。 在这种情况下,您可以使用$_SERVER['HTTP_USER_AGENT'] 变量来找到浏览器用户代理。

      【讨论】:

      • 这是有效的$_SERVER['USER_AGENT']??应该是$_SERVER['HTTP_USER_AGENT']???
      【解决方案5】:

      改用原生 PHP $_SERVER['HTTP_USER_AGENT'] 变量。

      【讨论】:

      • 注意,这个不能设置!
      • 在 PHP7+ 中,您可以编写 $_SERVER['HTTP_USER_AGENT']??null 让它返回 null 而不是在未定义时抛出错误
      • 或者这样做,如果您只是想稍后进行字符串操作并且不想关心 null 或未设置:$ua = $_SERVER['HTTP_USER_AGENT'].'';
      • 或者简单地检查isset()...干净和可读的代码应该始终是一个高优先级。
      • @StanE - PHP 7 版本非常好。小说!== 不可读。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-18
      • 2012-01-24
      • 2012-04-10
      • 2017-10-07
      • 2021-06-30
      • 1970-01-01
      相关资源
      最近更新 更多