在链接中,您可以附加get参数。如果我想将一个新的get参数添加到已经有一个的URL。
实施例: old:example.php?hi =你好 new:example.php?hi = hello& hello = hi
有没有其他方式这样做:
echo '<a href="'. $_SERVER['REQUEST_URI'].'&hello=hi">';
答案 0 :(得分:1)
<?php
$params = array(
'hello' => 'hi',
'hi' => 'hello',
);
$url = $_SERVER['REQUEST_URI'] . '?' . http_build_query($params);
?>
<a href="<?php echo htmlentities($url); ?>">Link to tuther page</a>
当您链接到同一页面时,您不需要提供$_SERVER['REQUEST_URI']
,您只需提供这样的参数即可生成相对URL:
<a href="?<?php echo htmlentities(http_build_query($params)); ?>">
Link to tuther page</a>
答案 1 :(得分:1)
警告是检测问号是否存在。如果没有,您需要添加它。一种快速而肮脏的方式是strpos:
if (strpos($_SERVER['REQUEST_URI'], '?') === false) {
$qsPart = '?';
} else {
$qsPart = '&';
}
$oldURL = $_SERVER['REQUEST_URI'];
echo '<a href="' . $oldURL . $qsPart . 'hello=hi">';
更强大的方法是在使用parse_url和http_build_query进行检查后分解REQUEST_URI
并重建它,但这可能超出了范围。
答案 2 :(得分:1)
echo '<a href="'.$_SERVER['REQUEST_URI'].'&hello=hi">';
或者你可以创建一个接受任意数量参数的函数。
<?php
$urlArray = array('value'=>'key', 'hi' => 'hello');
$url ='example.php';
function urlGenerator($url,$urlArray){
foreach ($urlArray as $key => $value) {
if($i==0){
$url .= '?'.$key.'='.$value;
}else{
$url .= '&'.$key.'='.$value;
}
$i++;
}
return $url;
}
echo urlGenerator($url,$urlArray);
//Output: example.php?value=key&hi=hello