2012-06-29 67 views
0

可能重复:
Replace values in a URI query string变迁语言变量

我使用导航栏语言切换到EN和DE之间进行切换,我的URL结构是这样的:

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

该开关适用于所有没有身份证的网址,但它没有w与ID的ork。

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

什么分别= xx是一个很好的解决方案,以检查$ LANG = XX或?郎= XX,然后添加?郎= XX或者$ LANG?

+0

你使用任何htaccess的代码重写网址吗? – Hardik

+0

如果没有设置$ _SERVER ['PHP_SELF']'(该变量包含url参数),并且添加'&'(如果已设置),则尝试仅添加'?'。 :) –

回答

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