Php 更新url中的参数,而不是添加新参数

Php 更新url中的参数,而不是添加新参数,php,url,pagination,Php,Url,Pagination,有点麻烦。基本上我已经创建了一些分页。问题是,每次单击页码url时,它都会将参数添加到url中,即使它已经存在 例如,我在页面上着陆。我的url现在是example.com/page?pagenum=1,我单击第二个页面,因此我的url现在是example.com/page?pagenum=1&pagenum=2。现在一切正常,但正如您所想象的,它会变得有点混乱,所以希望它更新URL中已经存在的参数。我当前正在使用以下内容获取当前页面URL: <?php function curP

有点麻烦。基本上我已经创建了一些分页。问题是,每次单击页码url时,它都会将参数添加到url中,即使它已经存在

例如,我在页面上着陆。我的url现在是example.com/page?pagenum=1,我单击第二个页面,因此我的url现在是example.com/page?pagenum=1&pagenum=2。现在一切正常,但正如您所想象的,它会变得有点混乱,所以希望它更新URL中已经存在的参数。我当前正在使用以下内容获取当前页面URL:

<?php
    function curPageURL() {
     $pageURL = 'http';
     if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";}
     $pageURL .= "://";
     if ($_SERVER["SERVER_PORT"] != "80") {
     $pageURL .=      $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
 } else {
     $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
 }
 return $pageURL;
}
?>

然后链接是这样的:

<a href='<?php echo curPageURL(); ?>&pagenum=<?php echo "1"; ?>'> 1 </a>

更新
我需要保留URL中的其他参数,我只需要更新“pagenum”

您可以使用
http\u build\u query
这样:

$all_params = $_GET;
$all_params["page"] = "2";
$link = "page.php?" . http_build_query($all_params); // "page.php?page=2&foo=bar"

这个问题的存在是因为
REQUEST\u URI
同时包含路径和查询字符串,并且在每次翻页时都会向路径和查询字符串追加一个新的查询字符串。要提取路径,您可以使用以下代码,取自答案:

然后,您可以复制现有的查询字符串字段,但删除
pagenum

$fields = $_GET;
unset($fields['pagenum']); // remove any existing pagenum value
$path .= '?' . http_build_query($fields); // re-append the query string
然后,您可以或多或少地使用现有的链接代码:

<a href='<?php echo $path; ?>&pagenum=<?php echo "1"; ?>'> 1 </a>


嘿,谢谢你的回复,抱歉,我有点不确定我将如何实现这一点?更改
curPageURL
的实现以不返回查询字符串。嘿,谢谢,这似乎几乎满足了我的要求,问题是我需要保留url中的一组其他参数,这将替换所有参数。对此我能做些什么吗?
<a href='<?php echo $path; ?>&pagenum=<?php echo "1"; ?>'> 1 </a>