0

我正在用两种语言用 php 创建一个网站。要更改页面的语言,我创建这样的链接:

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

这两个链接位于名为header.php的页面上,该页面包含在某些页面上。但在某些页面中是一些通过 URL 发送的参数。所以这两个链接不正确,它们应该如下:

<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 中。

Second, build link creation mechanism for your website using the current language setting, do not echo the internal links directly. Important internal links should be created from functions so that they format can be change quickly later.

于 2013-01-18T15:38:12.803 回答