browscap ini指令没有设置
我使用get_browser()
函数来试图警告人们他们的浏览器不支持Javascript。 其实我用它来告诉他们可以使用我正在构build的Web应用程序的某些部分。 我决定正确地使用Javascript,因为我厌倦了听开发者害怕使用它,而且我已经看到了这个语言的一些巨大的潜力。 我离题了,这是错误。
browscap ini指令没有设置
现在我想像这意味着我需要somthing设置它的php.ini。 有人能给我这个方向吗?
我不认为这是“最好”的解决scheme,检测是一个浏览器支持您的网站所需:
- 首先,浏览器可以说谎 – 他们可以发送任何想要的
User-Agent
- 即使支持的给定版本应该支持你所需要的,JavaScript仍然可以被禁用。
- 第二,当涉及到Javascript时,有更多的“正确的”方式来检测浏览器可以做什么或不做什么。
对于第二点,你应该testing浏览器是否真正支持你所需要的 – 而不是依赖于诸如browscap之类的列表。
不过,要回答关于browscap
的问题: get_browser
的手册页底部有一个注释(引号) :
注意:为了使其工作,php.ini中的
browscap
configuration设置必须指向系统上browscap.ini
文件的正确位置。browscap.ini
不与PHP捆绑在一起,但是你可以在这里find一个最新的»php_browscap.ini
文件。
虽然browscap.ini
包含许多浏览器的信息,但它依赖于用户更新来保持数据库最新。 该文件的格式是相当不言自明的。
所以,你必须:
- 下载browscap文件,
- 并在你的
php.ini
文件中设置browscap
指令,所以它指向你下载的文件。
我知道这个主题是旧的,但你可以使用像这样的东西:
<noscript>JavaScript must be enabled</noscript>
如果JavaScript未启用则显示。
您可以使用Browser类从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"; }
在PHP中有一个错误,当真正的问题是Web服务器不能读取browscap文件(例如,如果它由root拥有而不是www-data),也会导致这个错误。 请参阅https://bugs.php.net/bug.php?id=74501