我使用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