50

我正在使用该get_browser()功能试图警告人们他们的浏览器不支持 Javascript。实际上,我用它来告诉他们他们可以使用我正在构建的 Web 应用程序的某些部分。我决定正确使用 Javascript,因为我厌倦了听那些害怕使用它的开发人员的话,而且我已经看到了该语言的一些巨大潜力。我离题了,这是错误。

browscap ini 指令未设置

现在我想这意味着我需要将它设置为 php.ini。有人可以给我一些指导吗?

4

4 回答 4

80

我不认为这是检测浏览器是否支持您的网站所需的“最佳”解决方案:

  • 首先,浏览器可以撒谎——它们可以发送任何你想要的东西User-Agent
    • 即使给定版本的支持应该支持你需要的东西,Javascript 仍然可以被禁用。
  • 其次,当涉及到 Javascript 时,有更多“正确”的方法来检测浏览器可以做什么或不可以做什么。

对于第二点,您应该测试浏览器是否真的支持您所需要的——而不是依赖于诸如browscap 之类的列表。


不过,要回答您的问题browscap:手册页底部有一条说明get_browser引用)

注意:为了使它起作用,您browscap在 php.ini 中的配置设置必须指向browscap.ini 系统上文件的正确位置。browscap.ini不与 PHP 捆绑在一起,但您可以在此处找到最新的» php_browscap.ini文件。
虽然browscap.ini包含许多浏览器的信息,但它依赖于用户更新来保持数据库最新。文件的格式是不言自明的。

所以,你必须:

  • 下载browscap文件,
  • 并在您的文件中设置browscap指令php.ini,使其指向您下载的文件。
于 2010-01-10T12:20:14.733 回答
21

我知道这个话题很老,但你可以使用类似的东西:

<noscript>JavaScript must be enabled</noscript>

如果 JavaScript 未启用,则显示。

于 2013-02-13T18:57:50.080 回答
4

您可以使用从Github下载的 Browser 类来检查浏览器

配置

      include(/your-path/Browser.php);
$browser = new Browser();
    if( $browser->getBrowser() == Browser::BROWSER_IE && $browser->getVersion() >= 8 ) 
        {
            echo "Your browser is Internet explorer version 8";                                                                                                                                    
    }
于 2015-03-02T06:54:38.793 回答
3

当真正的问题是 Web 服务器无法读取 browscap 文件(例如,如果它由 root 而不是 www-data 拥有)时,PHP 中的一个错误也可能导致此错误。见https://bugs.php.net/bug.php?id=74501

于 2017-04-27T14:48:13.930 回答