检测 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中文网其他相关文章!