2010-01-10 67 views
35

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

browscap INI指令没有设置

现在我想像这意味着我需要财产以后设置php.ini中。有人可以给我一些方向吗?

+1

browscap功能会告诉您浏览器是否支持JavaScript,但如果禁用了它,则不会。你需要以另一种方式告诉他们。 – 2010-01-10 12:20:25

+0

这可能是您正在寻找的解决方案:http://stackoverflow.com/questions/121203/how-to-detect-if-javascript-is-disabled – 2010-01-10 12:21:30

+0

哦人...人**禁用** javascript(即使像“NoScript”这样的扩展名)。这不是关于浏览器的支持,而且,将Javascript用于核心功能将意味着许多具有可访问性问题的用户将无法使用您的网站。不要依赖用户代理嗅探,并阅读逐步增强。 – 2013-12-26 21:37:18

回答

64

我不认为这是“最好”的解决方案来检测是一个浏览器支持您需要为您的网站:

  • 首先,浏览器可以躺在 - 它们可以发送任何大公希望as User-Agent
    • 即使支持的给定版本应该支持您所需的,Javascript依然可以被禁用。
  • 第二,当涉及到Javascript时,有更多的“正确”方式来检测浏览器可以做什么或不做什么。

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


不过,回答你的问题有关browscap:有记在手册页的底部get_browser,说(引用)

注:为了这个要工作,您的browscap配置 在php.ini中的设置必须指向 正确位置的browscap.ini 文件在您的系统上。 browscap.ini是 未与PHP捆绑在一起,但您可能会在此处找到 最新的» php_browscap.ini文件。
虽然browscap.ini包含 许多浏览器的信息,它 依靠用户更新,以保持 数据库最新。 文件的格式相当明显。

所以,你必须:

  • 下载browscap文件,
  • ,并设置在php.ini文件browscap指令,使其指向你下载的文件。
+2

如果我无法访问我的php.ini文件,例如我在一个虚拟主机上?我如何设置使用ini_set()的browsercap位置? – MakuraYami 2012-06-05 10:05:50

+3

browscap被标记为PHP_INI_SYSTEM,因此无法使用ini_set或通过htaccess进行更改。 – Beniston 2012-06-08 10:59:37

+0

你能解释一下检测浏览器的最佳方法吗?任何指针赞赏。 。 。 – palerdot 2012-09-26 14:06:05

17

我知道这个话题是旧的,但你可以使用类似:

<noscript>JavaScript must be enabled</noscript> 

显示如果没有启用JavaScript。

+1

我对此毫不知情,谢谢 – 2013-10-06 12:30:38

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

PHP中的错误也可能导致这个错误时,真正的问题是, Web服务器无法读取browscap文件(例如,如果它由root用户代替www-data)。请参阅https://bugs.php.net/bug.php?id=74501