PHP:更改 URL 参数

Shu*_*ikh 4 php request-uri

这就是我所拥有的

echo '<button><a href="'.$_SERVER['REQUEST_URI'].'&startrow='.($startrow+100).'">Next 100</a></button>';
Run Code Online (Sandbox Code Playgroud)

我的网址中有 2 个参数,第一个是营销活动,第二个是 startrow,如何从网址中删除“startrow”参数及其值。我想要这样的东西。

echo '<button><a href="'.REMOVE &startrow=x($_SERVER['REQUEST_URI']).'&startrow='.($startrow+100).'">Next 100</a></button>';
Run Code Online (Sandbox Code Playgroud)

当我按下下一个 100 按钮时,页面会重新加载,并在 url 中添加 startrow 参数,因此如果我按下一个 100 按钮 5 次,则 url 中有 5 个 startrow 参数,所以我想先删除之前的 startrow 参数,然后添加新的那一个

我的实际网址: enquirytable.php/campaign=all&startrow=100

当我单击 Next 100 按钮时: enquirytable.php/campaign=all&startrow=100&startrow=200

我想要什么: enquirytable.php/campaign=all&startrow=200

Sah*_*ati 5

可能很长,但却是一种准确的方法。这里我们使用parse_urlparse_str来实现所需的输出。

尝试举个例子

<?php

$url="http://www.example.com/some/path?startrow=100&campaign=abc";
echo change_url_parameter($url, "startrow", 200);

function change_url_parameter($url,$parameterName,$parameterValue) {
    $url=parse_url($url);
    parse_str($url["query"],$parameters);
    unset($parameters[$parameterName]);
    $parameters[$parameterName]=$parameterValue;
    return  sprintf("%s://%s%s?%s", 
        $url["scheme"],
        $url["host"],
        $url["path"],
        http_build_query($parameters));
}
Run Code Online (Sandbox Code Playgroud)