2010-01-10 41 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