偵測PHP 中的瀏覽器語言變得強大
您已嘗試在PHP 腳本中根據瀏覽器的語言自動包含適當的頁面。但是,該腳本在某些瀏覽器中運作不正常,並始終顯示「index_en.php」頁面。要解決此問題並增強解決方案的可靠性,請考慮實施以下改進:
應修改 lixlpixel_get_env_var($Var) 以處理可能已設定 $GLOBALS[$Var] 的環境。
不要使用 strpos 迭代搜尋接受的語言,而是將 HTTP_ACCEPT_LANGUAGE 標頭解析為數組並檢查是否有匹配。
考慮將可用語言儲存在資料庫或其他結構化資料來源中,而不是依賴硬編碼數組。
實作更強大的回退機制,包括語言優先權清單或重新導向到語言選擇頁面。
簡化版替代
為了更簡單的方法,您可以使用以下腳本:
$lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2); $acceptLang = ['fr', 'it', 'en']; $lang = in_array($lang, $acceptLang) ? $lang : 'en'; require_once "index_{$lang}.php";
此腳本保留使用HTTP_ACCEPT_LANGUAGE 標頭檢測瀏覽器語言並載入對應的預期功能“index_xx.php”頁面。它使用 PHP 的本機 substr 函數來擷取語言程式碼的前兩個字元。 $acceptLang 陣列定義接受的語言。如果偵測到的語言與陣列中的一種匹配,則使用它;否則,'en' 被假定為預設值。 require_once 語句包含基於偵測到的語言的適當的「index_xx.php」檔案。
以上是如何可靠地偵測 PHP 中的瀏覽器語言以提供正確的頁面?的詳細內容。更多資訊請關注PHP中文網其他相關文章!