0

PHPで2言語によるWebサイトを作成しています。ページの言語を変更するには、次のようなリンクを作成します。

<a href="/?lang=fa">FA</a>|<a href="/?lang=en">EN</a>

この 2 つのリンクは、いくつかのページに含まれるheader.phpという名前のページにありますが、一部のページには URL 経由で送信されるいくつかのパラメーターがあります。そのため、2 つのリンクは正しくなく、次のようになります。

<a href="aPage.php?id=1&lang=en">FA</a>|<a href="aPage.php?id=1&lang=en">EN</a>  

私の質問は、いくつかのパラメーターがある場合でも、すべてのページの動的リンクを作成する方法です。

4

3 に答える 3

2

値をグローバルキー、できればphpに保存する必要があります$_SESSION

ページの冒頭で、次のことを確認できます。

session_start(); // if not started already
$possible_languages = array('en', 'fr');
$default_language   = 'fr';

$_SESSION['lang'] = ( isset($_GET['lang']) && in_array($_GET['lang']) ? $_GET['lang'] : $default_language );

これから$_SESSION['lang']は必要な場所でできます

于 2013-01-18T15:26:55.870 に答える
1

あなたが使用することができます:

<?
$params = $_GET;
$params['lang'] = 'EN';
$qs = '?';
foreach($params as $k=>$v)
  $qs .= $k.'='.urlencode($v).'&';
$url = substr($_SERVER['PHP_SELF'].$qs, 0, -1);

echo $url; //EN

$params['lang'] = 'FR';
$qs = '?';
foreach($params as $k=>$v)
  $qs .= $k.'='.urlencode($v).'&';
$url = substr($_SERVER['PHP_SELF'].$qs, 0, -1);

echo $url; //FR
?>
于 2013-01-18T15:27:19.880 に答える
0

まず、言語をセッションまたは Cookie に保存します。

echo次に、現在の言語設定を使用して Web サイトのリンク作成メカニズムを構築します。内部リンクを直接作成するのではありません。重要な内部リンクは関数から作成して、後でフォーマットをすばやく変更できるようにする必要があります。

于 2013-01-18T15:38:12.803 に答える