0

可能重复:
替换 URI 查询字符串中的值

我在导航栏中使用语言切换器在 EN 和 DE 之间切换,我的 url 结构是这样的:

http://www.mydomain.com/gallery.php?lang=de
http://www.mydomain.com/gallery-item.php?id=100&lang=de

该开关适用于所有没有 id 的 url,但不适用于 id。

<?php
$url="http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];
<a href='.$url.'?lang=en">
<a href='.$url.'?lang=de">
?>

检查 $lang=xx 或 ?lang=xx 然后分别添加 ?lang=xx 或 $lang=xx 的好解决方案是什么?

4

1 回答 1

0
$params = $_GET;

$params['lang'] = 'en';
printf('<a href="%s?%s">En</a>', $url, http_build_query($params));

$params['lang'] = 'de';
printf('<a href="%s?%s">De</a>', $url, http_build_query($params));

甚至非常紧凑:

printf('<a href="%s?%s">De</a>',
       $url, http_build_query(array('lang' => 'de') + $_GET));

http://php.net/http_build_query

于 2012-06-29T08:26:12.557 回答