我用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>
我的问题是如何为所有页面创建动态链接即使有一些参数。
答案 0 :(得分: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']
在需要的地方
答案 1 :(得分: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
?>
答案 2 :(得分:0)
首先,将语言存储在会话或cookie中。
其次,使用当前语言设置为您的网站构建链接创建机制,不要直接echo
内部链接。应该从函数创建重要的内部链接,以便以后可以快速更改它们。