编程语言
首页 > 编程语言> > 使用PHP检测选择的浏览器语言

使用PHP检测选择的浏览器语言

作者:互联网

我正在尝试实现此代码,以便为选择的德语,西班牙语或英语浏览器语言加载不同的文件.
情况是,使用我的西班牙IE仍然可以得到英文文件.

<?php 
if (is_home()) {
  if (preg_match('/de-DE/i', $_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
    include(TEMPLATEPATH . '/german-navbar.php' );
  }
  elseif (preg_match('/es-ES/i', $_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
    include(TEMPLATEPATH . '/spanish-navbar.php' );
  }
  else {
    include(TEMPLATEPATH . '/english-navbar.php' );
  }
}

我同时使用了HTTP_ACCEPT_LANGUAGE和HTTP_USER_AGENT.

这是对网站的测试,如果有人愿意进行检查,请使用德语或西班牙语作为浏览器中的选择语言:http://paragraphe.org/janette/

我有英文的Firefox,并且运行良好,但是我不确定代码是否适用于西班牙文和德文.

我找到了代码片段in this SO thread,但此时我有点迷失了.

非常感谢您的投入,

编辑:该代码的确在Firefox(但IE)中不起作用.

解决方法:

首先,您可以使用User Agent Switcher扩展名的Firefox来伪造用户代理并对其进行测试,尽管您必须伪造HTTP_ACCEPT_LANGUAGE请求的标头,例如使用Modify Headers扩展名(它还可以将用户代理更改为以及标题)

哦,它在德语中不起作用:

Warning: include(/home/paragrap/public_html/janette/wp-content/themes/Janette/german-home.php) [function.include]: failed to open stream: No such file or directory in /home/paragrap/public_html/janette/wp-content/themes/Janette/home.php on line 4

Warning: include() [function.include]: Failed opening '/home/paragrap/public_html/janette/wp-content/themes/Janette/german-home.php' for inclusion (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/paragrap/public_html/janette/wp-content/themes/Janette/home.php on line 4

标签:templates,http,language-features,php
来源: https://codeday.me/bug/20191024/1919719.html