代码之家  ›  专栏  ›  技术社区  ›  Andy Moore

PHP如何在链接中保留所有GET变量?

  •  2
  • Andy Moore  · 技术社区  · 15 年前

    我有一些PHP代码,可以动态生成数据表。通过单击各种链接,您可以“细化”数据表。我希望每个链接都能保留当前的GET信息并添加到其中。即:

    $allPreviousVars = ???; // Could be 20+ vars
    echo "<a href='".$allPreviousVars."&newVar=2'>Link</a>";
    

    我可以通过循环遍历$\u GET来想办法,但肯定有更快的方法吗?

    5 回复  |  直到 15 年前
        1
  •  8
  •   JW.    15 年前

    美元服务器[“查询字符串”]怎么样?

    编辑: 既然你对我的回答很客气,我想补充一点。在输出上述变量之前,应将其包装在htmlspecialchars()中。否则,可能会有人键入带有 "> 它会破坏你的链接。

        2
  •  2
  •   Ciaran McNulty    15 年前

    我的做法如下:

    <?php echo http_build_query(array_merge($_GET, array('foo'=>'bar', 'foo2'=>'bar2')); ?>
    

    请注意,任何现有的“foo”或“foo2”键都将被替换。

        3
  •  1
  •   Emil H    15 年前
        4
  •  1
  •   George Crawford    15 年前

    我可能会这样做:

    $query = mySanitizeFunction($_GET);
    $url = http_build_query($query) . '&newVar=2';
    
        5
  •  -1
  •   Rob    15 年前

    正如您所建议的,最好的办法是循环浏览 $_GET ,从现有查询参数加上重写位的混合物构建URL。