改变语言时处理路径的最佳方法是什么?

时间:2013-07-05 08:42:20

标签: php parameters hyperlink

示例:

当前有人在此网页上,想要将语言从lang = en更改为lang = fr:

 http:://domain.com/index.php?p=1&b=1&c=3&d=4&lang=en // I put two colons to disable the link here

如何保留其余值并只更改lang = en?

备注b = 1& c = 3& d = 4是有条件的,可能不存在(例如,有时候只能b = 1& f = 5等)

我可以去:

<a href="index.php?p=<?php echo $p; ?>&lang=fr">Change to French</a>

我是否必须完成所有可能的参数:

<?php
IF (ISSET($_REQUEST['b'])) { $b = '&b=' . ($_REQUEST['b']) } else { $b = ''; }
IF (ISSET($_REQUEST['c'])) { $c = '&c=' . ($_REQUEST['c']) } else { $c = ''; }
IF (ISSET($_REQUEST['d'])) { $d = '&d=' . ($_REQUEST['d']) } else { $d = ''; }
?>

<a href="index.php?p=<?php echo $p . $b . $c . $d; ?>&lang=fr">Change to French</a>

感谢您的教学!

2 个答案:

答案 0 :(得分:2)

您可以使用http_build_query生成查询。只需将$_REQUEST值添加到某个数组$query中,然后将lang值添加到其数组中。或者你只能使用$_REQUEST数组,但我认为这不是一个好习惯。

$query = $_REQUEST;
$query['lang'] = 'en';
$query_string = http_build_query($query);

然后只使用您的查询字符串

答案 1 :(得分:0)

查看$_SERVER['QUERY_STRING']

http://php.net/manual/en/reserved.variables.server.php

或尝试,

$arr=$_GET;
$arr['lang']='fr';
<a href="index.php?<?php echo implode('&',$arr); ?>">Change to French</a>