未定义的索引:Laravel中的HTTP_USER_AGENT,适用于少数用户



我使用laravel框架来检查它是否可以使用helper.php移动,但我有时会在laravel.log中遇到错误,其中包含:未定义索引:HTTP_USER_AGENT

我的代码helper.php代码:

public static function isMobile() 
{
return preg_match("/(android|avantgo|blackberry|bolt|boost|cricket|docomo|fone|hiptop|mini|mobi|palm|phone|pie|tablet|up.browser|up.link|webos|wos)/i", $_SERVER["HTTP_USER_AGENT"]);
}

视图/代码:

@if(AppHelper::isMobile())
<p>it is mobile</p>
@endif

作为@thiefmaster 的另一个问题回答

参考:PHP未定义索引:HTTP_USER_AGENT

用户代理标头是可选的。防火墙可能会过滤它或人员可能会将其客户端配置为忽略它。如果它是存在的。或者更好,使用!empty((作为空标头不会有用的:

public static function isMobile() { 
$userAgent=null; 
if(isset($_SERVER["HTTP_USER_AGENT"])){ 
$userAgent=preg_match("/(android|avantgo|blackberry|bolt|boost|cricket|docomo|fone|hiptop|mini|mobi|palm|phone|pie|tablet|up.browser|up.link|webos|wos)/i", $_SERVER["HTTP_USER_AGENT"]); 
} 
return $userAgent; 
} 

或者你可以按照

public static function isMobile() { 
$userAgent=null; 
if(isset(request()->userAgent())){ 
$userAgent=preg_match("/(android|avantgo|blackberry|bolt|boost|cricket|docomo|fone|hiptop|mini|mobi|palm|phone|pie|tablet|up.browser|up.link|webos|wos)/i",request()->userAgent()); 
} 
return $userAgent; 
} 

此外,我建议您使用agent库https://github.com/jenssegers/agent

相关内容

最新更新