PHP:更改URL参数

时间:2017-11-09 07:20:14

标签: php request-uri

这就是我所拥有的

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

我的网址中有2个参数,一个是广告系列,第二个是startrow,如何从网址中删除'startrow'参数及其值。我想要这样的东西。

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

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

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

当我点击下一个100按钮时: enquirytable.php / campaign = all&amp; startrow = 100&amp; startrow = 200

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

2 个答案:

答案 0 :(得分:1)

可能还有很长的路要走,但你可以尝试这种方式。我们在这里使用parse_urlparse_str来获得所需的输出。

Try with an example

<?php

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

function change_url_parameter($url,$parameter,$parameterValue)
{
    $url=parse_url($url);
    parse_str($url["query"],$parameters);
    unset($parameters[$parameter]);
    $parameters[$parameter]=$parameterValue;
    return  $url["path"]."?".http_build_query($parameters);
}

答案 1 :(得分:0)

构建那个不干净的URL,而不是必须删除一些参数,你应该从一个干净的路线开始,然后添加所需的。

您可以执行以下操作:

echo '<button><a href="'.$_SERVER['PHP_SELF'].'&startrow='.($startrow+100).'">Next 100</a></button>';

如果你真的想用$_SERVER['REQUEST_URI']这样做,这应该有效:

function getUrl($startRow) {
    $url = preg_replace('@&startnow=[\d]+@', '', $_SERVER['REQUEST_URI']);
    return $url.'&startrow='.$startRow;
}

// ...

echo '<button><a href="'.getUrl($startrow+100).'">Next 100</a></button>';