使用PHP更改href上的变量值

时间:2013-10-13 16:43:24

标签: php html

我正在实现一个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”(我的浏览器设置为西班牙语)。

2 个答案:

答案 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");