gpt4 book ai didi

php - 删除 URL 中的旧参数 (PHP)

转载 作者:可可西里 更新时间:2023-10-31 22:07:38 26 4
gpt4 key购买 nike

我正在使用 PHP 为表格创建分页。我正在使用以下代码创建分页链接

<a class='page-numbers' href='$href&pagenum=$i'>$i</a>

使用 $href

$href = $_SERVER['REQUEST_URI'];

它运行良好,但是,它会弄乱地址栏,每次都会添加一个新的 pagenum 参数。所以它变成 pagenum=1&pagenum=3&pagenum=4....

如何改进?

最佳答案

这个怎么样?去测试,以确保 :)

<?php
$new_get = $_GET; // clone the GET array
$new_get['pagenum'] = $i; // change the relevant parameter
$new_get_string = http_build_query($new_get); // create the foo=bar&bar=baz string
?>
<a class="page-numbers" href="?<?php echo $new_get_string; ?>">
<?php echo $i ?>
</a>

另外,请注意整个 $href 位是不必要的。如果您的 href? 开头,浏览器会将查询字符串应用于当前路径。

不过,我敢打赌您会循环播放,所以这里有一个针对生成 10,000 个页码链接进行了优化的版本。我的基准测试表明它在大量链接时速度稍快,因为您只是在进行字符串连接而不是完整的 HTTP 查询构建,但这可能不足以值得担心。仅当有五个或六个 GET 参数时差异才真正显着,但是,当有时,此策略在我的机器上用大约一半的时间完成。

<?php
$pageless_get = $_GET; // clone the GET array
unset($pageless_get['pagenum']); // remove the pagenum parameter
$pageless_get_string = http_build_query($pageless_get); // create the foo=bar&bar=baz string
for($i = 0; $i < 10000; $i++):
// append the pagenum param to the query string
$page_param = "pagenum=$i";
if($pageless_get_string) {
$pageful_get_string = "$pageless_get_string&$page_param";
} else {
$pageful_get_string = $page_param;
}
?>
<a class="page-numbers" href="?<?php echo $pageful_get_string; ?>">
<?php echo $i ?>
</a>
<?php endfor ?>

关于php - 删除 URL 中的旧参数 (PHP),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3713922/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com