PHP-使用http_build_查询进行分页会给我重复的参数

PHP-使用http_build_查询进行分页会给我重复的参数,php,get,pagination,Php,Get,Pagination,我有这个分页代码 if($pages > 1 && $set <= $pages) { ?> <div class="pagination-bar"> <?php if($set > 1) { ?> <a href="?<?php echo http_build_query($_GET); ?>

我有这个分页代码

if($pages > 1 && $set <= $pages) {
         ?>
         <div class="pagination-bar">
         <?php
         if($set > 1) {
             ?>
             <a href="?<?php echo http_build_query($_GET); ?>&page=1">&nbsp;<<<&nbsp;</a>
             &nbsp; | &nbsp;
             <a href="?<?php echo http_build_query($_GET); ?>&page=<?php echo ((int)$set - 1) ?>"><<</a>
             &nbsp; | &nbsp;
             <?php
         }

         for($i = 1; $i <= $pages; $i++) {
             ?>
             <a href="?<?php echo http_build_query($_GET); ?>&page=<?php echo $i.""; ?>"><?php echo $i; ?></a>&nbsp; | &nbsp;
             <?php
         }
         if($set < $pages) {
             ?>
             <a href="?<?php echo http_build_query($_GET); ?>&page=<?php echo ((int)$set + 1); ?>">>></a>
             &nbsp; | &nbsp;
             <a href="?<?php echo http_build_query($_GET); ?>&action=list&page=<?php echo $pages; ?>">&nbsp;>>>&nbsp;</a>
             <?php
         }
         ?>
        </div>
        <?php
     }
如您所见,有两个“页面”参数。。。我怎样才能避免这种情况?它仍然可以工作并且显示正确的页面,它似乎忽略了通过URL传递的具有相同名称的第一个get参数。

使用函数

或更好地使用功能:

$query = http_build_query($_GET);
$query = preg_replace('/page=\d*/i', '', $query);
所以


|  
|  

我该把它放在哪里?你能给我解释清楚吗。感谢回复Chack更新,在这种情况下最好使用regex替换,这似乎是可行的!到目前为止,我还没有找到更好的解决办法。谢谢
$_GET = array_unique ( $_GET );
$query = http_build_query($_GET);
$query = preg_replace('/page=\d*/i', '', $query);
<?php
if($pages > 1 && $set <= $pages) {
     $query = http_build_query($_GET);
     $query = preg_replace('/page=\d*/i', '', $query);
     ?>
     <div class="pagination-bar">
     <?php
     if($set > 1) {
         ?>
         <a href="?<?php echo $query ?>&page=1">&nbsp;<<<&nbsp;</a>
         &nbsp; | &nbsp;
         <a href="?<?php echo $query ?>&page=<?php echo ((int)$set - 1) ?>"><<</a>
         &nbsp; | &nbsp;
         <?php
     }

     for($i = 1; $i <= $pages; $i++) {
         ?>
         <a href="?<?php echo $query ?>&page=<?php echo $i.""; ?>"><?php echo $i; ?></a>&nbsp; | &nbsp;
         <?php
     }
     if($set < $pages) {
         ?>
         <a href="?<?php echo $query ?>&page=<?php echo ((int)$set + 1); ?>">>></a>
         &nbsp; | &nbsp;
         <a href="?<?php echo $query ?>&action=list&page=<?php echo $pages; ?>">&nbsp;>>>&nbsp;</a>
         <?php
     }
     ?>
    </div>
    <?php
 }