我使用标题中包含的这个简单模块让用户更改网站的语言
<div class="left first">
<a href="' . $_SERVER['REQUEST_URI'] . $linkParam . 'sv">
<img src="bilder/sv.png" alt="SV" />
</a>
</div>
<div class="left"><img src="bilder/eng.png" alt="ENG" /></div>
可用于更改的语言是通过http请求发送lang param的链接,从而设置语言会话。在我总是向用户发送index.php之前,我希望能够在整个网站上更改语言并留在页面上。
由于某些页面需要保留http参数,我使用此解决方案来确定lang参数应该是?lang=...
还是&lang=...
if($_SERVER['REQUEST_URI'] != $_SERVER['PHP_SELF']){
$linkParam = '&lang=';
}else{
$linkParam = '?lang=';
}
通过一些测试可以正常运行,但这是否会一直用于确定网址是否已?param
并设置lang-param
?
答案 0 :(得分:1)
看看http_build_query功能,也许这会对你有帮助。您可以执行以下操作:
$aGet = $_GET;
$aGet['lang'] = $sLanguage;
$sQueryString = http_build_query($aGet);
答案 1 :(得分:0)
最好使用:
if(strpos($_SERVER['REQUEST_URI'], '?') !== false)
$linkParam = '&lang=';
else
$linkParam = '?lang=';
实际上甚至更好:
if($_SERVER['QUERY_STRING'])
$linkParam = '&lang=';
else
$linkParam = '?lang=';
PHP_SELF可以通过.htaccess
文件更改,而REQUEST_URI保持不变。因此,如果您甚至开始使用mod_rewrite,它可能会停止工作。我认为QUERY_STRING
也比cross-server
更加REQUEST_URI
。