如何在 PHP 中获取用户代理
Posted
技术标签:
【中文标题】如何在 PHP 中获取用户代理【英文标题】:How to get user agent in PHP 【发布时间】:2012-05-01 21:33:17 【问题描述】:我正在使用此 JS 代码来了解用户使用的浏览器。
<script>
document.write(navigator.appName);
</script>
我想将这个 navigator.appName 转换为 php 代码,以便像这样使用它:
if ($appName == "Internet Explorer")
// blabla
我该怎么做?
【问题讨论】:
相关:reliable user browser detection with php. 【参考方案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 版本非常好。小说!== 不可读。以上是关于如何在 PHP 中获取用户代理的主要内容,如果未能解决你的问题,请参考以下文章