在每个页面的页脚中,都有一个带有用于更改语言的标志的页脚,这要感谢GET:
<a href="<?= $url.$var ?>lang=en_US"><img class="flag" src="images/us_flag.png" /><span>English</span></a> |
<a href="<?= $url.$var ?>lang=fr_FR"><img class="flag" src="images/fr_flag.png" /><span>Français</span></a> |
<a href="<?= $url.$var ?>lang=de_DE"><img class="flag" src="images/de_flag.png" /><span>Deutsch</span></a> |
<a href="<?= $url.$var ?>lang=zh_CN"><img class="flag" src="images/ch_flag.png" /><span>中文</span></a>
我想制作这些动态链接以适应网站的所有页面,所以我这样做了:
<?php
$url = $_SERVER['REQUEST_URI'];
$var = ($_GET) ? '&': '?';
?>
问题是,当我单击链接以更改语言时,它会添加一个语言参数,如下所示:
mysite.com/folder/?status=super&number=90&lang=fr_FR&lang=en_US&lang=en_US&lang=en_US
因此,如果$_SERVER['REQUEST_URI']
中已经存在lang参数,我该怎么做,只需在链接中将其替换
如果可能的话,一个简单有效的解决方案(每次加载页面时都会调用它)
答案 0 :(得分:1)
执行以下步骤:
lang
参数的值。代码将是:
<?php
$url = $_SERVER['REQUEST_URI'];
$parts = parse_url($url);
parse_str($parts['query'], $query);
$domain = $parts['query'];
$query["lang"] = "en_US";
?>
<a href="<?= $domain . "?" . http_build_query($query); ?>"><img class="flag" src="images/us_flag.png" /><span>English</span></a> |
<?php $query["lang"] = "fr_FR"; ?>
<a href="<?= $domain . "?" . http_build_query($query); ?>"><img class="flag" src="images/fr_flag.png" /><span>Français</span></a> |
<?php $query["lang"] = "de_DE"; ?>
<a href="<?= $domain . "?" . http_build_query($query); ?>"><img class="flag" src="images/de_flag.png" /><span>Deutsch</span></a> |
<?php $query["lang"] = "zh_CN"; ?>
<a href="<?= $domain . "?" . http_build_query($query); ?>"><img class="flag" src="images/ch_flag.png" /><span>中文</span></a>