用href传递当前的GET变量

时间:2013-07-16 11:40:17

标签: php html get

假设我在www.example.com/?par1=test,我有一个像<a href="/subpage">Link text</a>这样的链接。

如何将GET变量传递给子页面,而不读取每个参数e.G. $_GET["par1"]并手动将其传递给链接。

7 个答案:

答案 0 :(得分:4)

$ _ SERVER ['QUERY_STRING']包含您要查找的数据。

PHP: $_SERVER - Manual

答案 1 :(得分:3)

如果你想将所有获取变量传递到下一页,只需做下一件事:

$href = '/somepage/';
if ($_GET) {
    $href .= strpos($href, '?') === false ? '?' : '&';
    $href .= http_build_query($_GET);
}

然后回复此href

<a href="<?=$href;?>">my link</a>

答案 2 :(得分:1)

使用parse_url。它返回一个数组:

$out = parse_url('www.example.com/?par1=test');
var_dump($out);

输出:

Array
(
[path] => www.example.com/
[query] => par1=test
)

答案 3 :(得分:0)

<a href='www.example.com.br?pas1=<?php echo $variavel  ?>'>Link</a>;

答案 4 :(得分:0)

您可以创建一个功能来帮助您生成链接。

显然这是一个简单的例子,但您可以轻松扩展它。

    function getLink($url, array $params = array())
    {
        if (empty($params)) return $url;

        $url .= '?';
        foreach($params as $param => $value) {
            $url .= $param .'='. $value;
        }
        return $url;
    }

    $params = array(
        'test' => 1,
        'foo' => 'hello',
        'bar' => 'test',
    );
    echo getLink('my/target/page.php', $params);

$params数组可以代替超全局$_GET,让生活更轻松!

答案 5 :(得分:0)

与许多问题一样,有很多解决方案!

最简单的可能只是在您的网址上添加$_SERVER['QUERY_STRING']的内容,例如:

<a href="/somefile?<?php echo $_SERVER['QUERY_STRING'] ?>">somefile</a>

但这确实依赖于您的网络服务器正确传递我认为的正确参数。 Apache应该使用mod_php开箱即用,但基于FastCGI的PHP可能需要一些额外的配置。

查看the documentation for the $_SERVER variable

答案 6 :(得分:0)

这是如何执行此操作的示例:

<?php
echo print_r($_GET);
echo "<br>";
echo "www.mysite.com/index.php?".http_build_query($_GET);
?>

将打印:(如果网址为:http://www.mysite.com/index.php?this=1&that=2

数组([this] =&gt; 1 [that] =&gt; 2)1

www.mysite.com/index.php?this=1&that=2