2012-04-17 97 views
1

我有链接的页面,看起来像这样:PHP添加GET变量链接

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

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

+0

定义“我有一个页面”。这听起来像一个静态页面,是一个吗? – Jon 2012-04-17 12:09:12

+1

你应该编写一个函数/方法来生成URL。 – kapa 2012-04-17 12:15:30

回答

0

设置$_ENV['lang'] = 'en'您的基本(假设的config.php)文件

getenv('lang')$_ENV['lang']

Refernece

0

检索添加郎= EN会话变量$_SESSION['lang']='en' &在每个页面中初始化它。

0

您可以使用输出缓冲或Apache过滤器来分析您的输出,以自动将lang查询字符串参数添加到所有链接,但这不是非常有效。

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

在每个页面的开始(也许在一般包括脚本),你可以有这样的:

<?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; 

} 
?> 

那么你应该在你的页面的其余部分使用$_SESSION['lang']代替$_GET['lang']。此外,您可能需要添加某种验证来确保所需的lang有效且可用。

+0

更改'} else if(!isset($ _ SESSION ['lang'])){'to'} else {'... PHP不需要再次检查是否isset is – 2012-04-17 12:39:27

+0

否 - 第一个isset '检查$ _GET ['lang']',第二个'$ _SESSION ['lang']'。阅读评论。 – megaflop 2012-04-18 11:46:08

+0

Oups我把它变成了$ _GET,对不起:S – 2012-04-18 14:11:32