我有一个带有如下链接的页面:
<a href="http://mysite.com/page.php">...</a>
我也可能在当前 url 中有一个 GET 变量?lang=en 。如何将 GET 变量 ?lang=en 添加到页面中的所有链接,而无需手动添加它们或向每个链接添加变量?谢谢。
您可以使用输出缓冲或 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=en添加到会话变量中$_SESSION['lang']='en'
,并在每个页面中对其进行初始化。