更改URL中的语言变量

时间:2012-06-29 08:21:04

标签: php url locale

  

可能重复:
  Replace values in a URI query string

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

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有什么好方法?

1 个答案:

答案 0 :(得分: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