2017-10-28 208 views
0

我收到以下错误说明:未定义指数:HTTP_USER_AGENT在包括()但我没有定义HTTP_USER_AGENT未定义索引包括

function get_browser_name($user_agent) 
{ 
    if (strpos($user_agent, 'Opera') || strpos($user_agent, 'OPR/')) return 'Opera'; 
    elseif (strpos($user_agent, 'Edge')) return 'Edge'; 
    elseif (strpos($user_agent, 'Chrome')) return 'Chrome'; 
    elseif (strpos($user_agent, 'Safari')) return 'Safari'; 
    elseif (strpos($user_agent, 'Firefox')) return 'Firefox'; 
    elseif (strpos($user_agent, 'MSIE') || strpos($user_agent, 'Trident/7')) return 'Explorer'; 
    return 'Other'; 
} 

错误是在这条线:

<body class="<?php echo get_browser_name($_SERVER['HTTP_USER_AGENT']);?>" <?php print $attributes;?> <?php print $classes; ?>> 
+0

代码工程何时不作为包含?标题可能未设置。 – chris85

+0

但是您正在传递'$ _SERVER ['HTTP_USER_AGENT']' – RiggsFolly

+0

也许如果您向我们显示了COMPLETE错误消息,并根据您向我们显示的代码标识了错误消息的行号,我们可以帮助 – RiggsFolly

回答

-1

参考http://php.net/manual/en/function.get-browser.php#101125

function get_browser_name($user_agent) 
{ 
    if (strpos($user_agent, 'Opera') || strpos($user_agent, 'OPR/')) return 'Opera'; 
    elseif (strpos($user_agent, 'Edge')) return 'Edge'; 
    elseif (strpos($user_agent, 'Chrome')) return 'Chrome'; 
    elseif (strpos($user_agent, 'Safari')) return 'Safari'; 
    elseif (strpos($user_agent, 'Firefox')) return 'Firefox'; 
    elseif (strpos($user_agent, 'MSIE') || strpos($user_agent, 'Trident/7')) return 'Internet Explorer'; 

    return 'Other'; 
} 

// Usage: 

echo get_browser_name($_SERVER['HTTP_USER_AGENT']); 
+1

答**好的答案**将始终解释已完成的工作以及为什么这样做, 不仅适用于OP,而且适用于SO的未来访问者,可能会发现此问题并正在阅读您的答案。甚至可以upvote它,如果它解决了问题 – RiggsFolly

+0

现在其链接只回答 – RiggsFolly