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