PHP:在file.php之后使用?....

时间:2010-11-01 18:01:00

标签: php

我有这个:

pm.php?v=unread

现在处于未读状态,您也可以按消息或邀请进行过滤,链接如下所示:

<a href="?f=msgs">Msgs</a> | <a href="?f=invites">Inv.</a>

如果您在pm.php?v=unread,内并按下Msgs,则结果为pm.php?f=msgs。 我希望它是pm.php?v=unread&f=msgs

我该怎么做?

5 个答案:

答案 0 :(得分:5)

如果您想维护所有 $ _GET变量并为链接添加额外费用,请考虑array_merge()http_build_query()

$gets=array_merge($_GET,array('f'=>'msgs'));//returns array with your new values overriding any old values
$getstring=http_build_query($gets);
$link="<a href="?$getstring>Msgs</a>";

答案 1 :(得分:0)

<a href="?<?=($_GET['v']=="unread"?'v=unread&':'')?>f=msgs">Msgs</a>

<a href="?<?=($_GET['v']?'v='.$_GET['v'].'&':'')?>f=msgs">Msgs</a>

答案 2 :(得分:0)

<a href="pm.php?f=msgs&v=<?php echo $_REQUEST['v']; ?>">Msgs</a>

答案 3 :(得分:0)

您必须找出所有获取变量并将其添加到URL中。 例如,您可以在pm.php中执行类似的操作:

$params = ((isset($_GET['v'])?'v=' . $_GET['v']:'');
$params .= //do the same for all your expected variables

在页面中,您可以执行以下操作:

<a href="?f=msgs&<?php echo $params; ?">Msgs</a> | <a href="?f=invites&<?echo $params; ?>">Inv.</a>

这显然是短暂而肮脏的。假设你总是有params等。

答案 4 :(得分:0)

这是一个有趣的问题。因为如果您不使用任何$ _GET值,并且单击消息怎么办?然后它将去pm.php&amp; f = msgs现在这里是我的解决方案:)

function appendURL($name, $value) 
{ 
    // if we have a variable holding the '?' position
    if(strpos($_SERVER['REQUEST_URI'], '?')) 
    { 
        // append the value in the & position
        return $_SERVER['REQUEST_URI'] . "&$name=$value"; 

    } 
    // otherwise, append it in the ? position
    return $_SERVER['REQUEST_URI'] . "?$name=$value";
}

现在你的情况

<a href="<?=appendURL('f', 'msgs')?>">Messages</a>

有一段时间没有这样做,所以如果有些东西不要把我钉在十字架上! :)