2012-06-29 2 views
0

Можно создать дубликат:
Replace values in a URI query stringИзменения переменный языка в URL

Я использую язык переключатель в навигационной панели для переключения между EN и DE, моя структура URL выглядит так:

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

Коммутатор хорошо работает на всех URL-адресах, у которых нет идентификатора, но это не так ork с идентификаторами.

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

Что такое хорошее решение, чтобы проверить $ LANG = ое или? LANG = хм, а затем добавить? LANG = ое или $ LANG = хе соответственно?

+0

Вы используете какой-либо код Htaccess переписать URLs? – 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

Смежные вопросы