我正在实现一个PHP函数来基于HTTP_ACCEPT_LANGUAGE翻译我的网站,但也可以通过用户选择:
<?php
if (!isset($language)) {
$language = explode(',',$_SERVER['HTTP_ACCEPT_LANGUAGE']);
$language = strtolower(substr(chop($language[0]),0,2));
}
include("functions/content_".$language.".php");
?>
当用户点击导航栏中的链接时,会出现用户选择,如下所示:
<ul>
<li><a href="portfolio.php?language=es">Español</a></li>
<li><a href="portfolio.php?language=en">Enshlish</a></li>
<li><a href="portfolio.php?language=fr">Français</a></li>
</ul>
问题是我无法使用href更改$ language的值,它总是自定义为“es”(我的浏览器设置为西班牙语)。
答案 0 :(得分:1)
在检查是否已设置之前,您是否获得了$ language的值?当register_globals关闭时,您需要从$ _GET变量中获取它以从URL获取它:
if(isset($_GET['language'])){ $language = $_GET['language']; }
答案 1 :(得分:1)
你可以试试这个
$language = isset($_GET['language']) ? $_GET['language'] : false;
if(!$language) {
$language = explode(',',$_SERVER['HTTP_ACCEPT_LANGUAGE']);
$language = strtolower(substr(chop($language[0]),0,2));
}
此外,您可以使用函数(辅助函数),如
function setlanguage()
{
$language = isset($_GET['language']) ? $_GET['language'] : false;
if(!$language) {
$language = explode(',',$_SERVER['HTTP_ACCEPT_LANGUAGE']);
$language = strtolower(substr(chop($language[0]),0,2));
}
return $language;
}
像
一样使用它$language = setlanguage();
include("functions/content_".$language.".php");