PHP未定义索引:HTTP_USER_AGENT
发布时间:2020-05-25 09:51:56 所属栏目:PHP 来源:互联网
导读:以下代码验证访问该站点的用户代理,但是我收到错误.需要更新以适应没有设置用户代理的情况? 错误 PHP注意:未定义的索引:第7行的Utils.php中的HTTP_USER_AGENT 码 public static function detectBrowser() { $userAgent = strtolower($_SERVER[HTTP_USER_AG
|
以下代码验证访问该站点的用户代理,但是我收到错误.需要更新以适应没有设置用户代理的情况? 错误 码 public static function detectBrowser()
{
$userAgent = strtolower($_SERVER['HTTP_USER_AGENT']);
if (preg_match('/opera/',$userAgent)) {
$name = 'opera';
}
elseif (preg_match('/webkit/',$userAgent)) {
$name = 'safari';
}
elseif (preg_match('/msie/',$userAgent)) {
$name = 'msie';
}
elseif (preg_match('/mozilla/',$userAgent) && !preg_match('/compatible/',$userAgent)) {
$name = 'mozilla';
}
else {
$name = 'unrecognized';
}
if (preg_match('/.+(?:rv|it|ra|ie)[/: ]([d.]+)/',$userAgent,$matches)) {
$version = $matches[1];
}
else {
$version = 'unknown';
}
if (preg_match('/linux/',$userAgent)) {
$platform = 'linux';
}
elseif (preg_match('/macintosh|mac os x/',$userAgent)) {
$platform = 'mac';
}
elseif (preg_match('/windows|win32/',$userAgent)) {
$platform = 'windows';
}
else {
$platform = 'unrecognized';
}
return array(
'name' => $name,'version' => $version,'platform' => $platform,'userAgent' => $userAgent
);
}
User-Agent头是可选的.防火墙可能会过滤它,或者人们可能会配置他们的客户端来省略它.只需使用isset()检查是否存在.或者甚至更好,使用!empty()作为一个空标题也不会有用:
public static function detectBrowser() {
if(empty($_SERVER['HTTP_USER_AGENT'])) {
return array(
'name' => 'unrecognized','version' => 'unknown','platform' => 'unrecognized','userAgent' => ''
);
}
// your old code here
}
然而,由于您的所有代码似乎在空字符串中正常工作,并且还会生成“未知”值,您可以简单地更改以下行: $userAgent = strtolower($_SERVER['HTTP_USER_AGENT']); 喜欢这个: $userAgent = isset($_SERVER['HTTP_USER_AGENT'])
? strtolower($_SERVER['HTTP_USER_AGENT'])
: ''; (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
