1

假设我在www.example.com/?par1=test并且我有一个链接,例如:<a href="/subpage">Link text</a>

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

4

7 回答 7

4

如果您想将所有get 变量传递到下一页,请执行以下操作:

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

然后回显这个href

<a href="<?=$href;?>">my link</a>
于 2013-07-16T11:46:52.840 回答
4

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

PHP: $_SERVER - 手动

于 2013-07-16T11:48:17.813 回答
1

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

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

输出:

Array
(
[path] => www.example.com/
[query] => par1=test
)
于 2013-07-16T11:44:09.700 回答
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] => 1 [that] => 2 ) 1

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

于 2013-07-16T11:50:43.840 回答
0
<a href='www.example.com.br?pas1=<?php echo $variavel  ?>'>Link</a>;
于 2013-07-16T11:45:29.190 回答
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以使生活更轻松!

于 2013-07-16T11:46:30.160 回答
0

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

最简单的可能只是在你的 URL 后面加上 的内容$_SERVER['QUERY_STRING'],例如:

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

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

查看变量的文档$_SERVER

于 2013-07-16T11:48:40.427 回答