没有设置browscap ini指令

时间:2010-01-10 12:15:51

标签: php javascript ini browscap

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

  

browscap ini指令未设置

现在我想象这意味着我需要把它设置为php.ini。有人可以给我一些方向吗?

4 个答案:

答案 0 :(得分:71)

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

  • 首先,浏览器可以说谎 - 他们可以发送任何想要的内容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指令,使其指向您下载的文件。

答案 1 :(得分:17)

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

<noscript>JavaScript must be enabled</noscript>

显示JavaScript是否未启用。

答案 2 :(得分:2)

您可以使用浏览器类从Github

下载浏览器来检查浏览器

配置

      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";                                                                                                                                    
    }

答案 3 :(得分:0)

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