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 に答える