PHP将GET变量添加到链接

PHP将GET变量添加到链接,php,variables,get,Php,Variables,Get,我有一个带有如下链接的页面: <a href="http://mysite.com/page.php">...</a> 在当前url中,我还可能有一个GET变量?lang=en。如何将GET变量?lang=en添加到页面中的所有链接中,而无需手动添加它们或向每个链接添加变量?谢谢。在基本(假设config.php)文件中设置$\u ENV['lang']='en' 取回 getenv('lang')或$\u ENV['lang'] 将lang=en添加到会话变量中,

我有一个带有如下链接的页面:

<a href="http://mysite.com/page.php">...</a>


在当前url中,我还可能有一个GET变量?lang=en。如何将GET变量?lang=en添加到页面中的所有链接中,而无需手动添加它们或向每个链接添加变量?谢谢。

在基本(假设config.php)文件中设置
$\u ENV['lang']='en'

取回
getenv('lang')
$\u ENV['lang']


lang=en添加到会话变量中,作为
$\u session['lang']='en'
&在每个页面中初始化它。

您可以使用输出缓冲或Apache筛选器解析输出,以自动将lang查询字符串参数添加到所有链接,但是,这并不是非常有效

如果您真的不想手动将其添加到每个链接中,那么我建议您将其存储在会话变量中

在每个页面的开头(可能在通用的include脚本中),您可以有如下内容:

<?php
define('DEFAULT_LANG', 'en_GB');

session_start();

// check if a new lang has been specified.
if (isset($_GET['lang'])) {

    // yes, so use the requested lang
    $_SESSION['lang'] = $_GET['lang'];

    // otherwise, check if a lang was previously set
} else if ( ! isset($_SESSION['lang']) ) {

    // no, so use default lang:
    $_SESSION['lang'] = DEFAULT_LANG;

}
?>


然后,您应该在页面的其余部分使用
$\u SESSION['lang']
而不是
$\u GET['lang']
。此外,您可能需要添加某种验证,以确保请求的语言有效且可用。

定义“我有一个页面”。这听起来像是一个静态页面,是吗?你应该编写一个函数/方法来生成URL。更改
}否则如果(!isset($\u SESSION['lang']){
}否则{
…PHP不需要再次检查!issetNo-第一个
isset
检查是否
$\u获取['lang]
,第二个
$\u SESSION['lang
。阅读评论。我认为这两个都是$\u-GET,对不起:S