链接GET参数

时间:2012-03-08 23:15:18

标签: php url hyperlink

在链接中,您可以附加get参数。如果我想将一个新的get参数添加到已经有一个的URL。

实施例:    old:example.php?hi =你好    new:example.php?hi = hello& hello = hi

有没有其他方式这样做:

echo '<a href="'. $_SERVER['REQUEST_URI'].'&hello=hi">';

3 个答案:

答案 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_urlhttp_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