如何使带有值的变量在php上出现一次

问题描述 投票:0回答:1

我这里有一个有效的代码,它的作用是在当前URL中添加一个变量和值。我所做的是使用

获得当前URL。

PHP

function c_url() {
   $cUrl = "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
   $vUrl = str_replace("&", "&", $cUrl);

   return $vUrl;
}

然后当我单击html链接时,它将带有值的变量添加到url

HTML LINKS

<a href="<?php echo c_url(); ?>&brand=hello">Brand</a><br>
<a href="<?php echo c_url(); ?>&color=red">Color</a><br>
<a href="<?php echo c_url(); ?>&size=M">Size</a><br>
<a href="<?php echo c_url(); ?>&price=12000">price</a>

问题是,当我多次单击按钮时,它会不断在url上重复相同的变量和值,直到它被填满为止。所以我想要的是,当我单击一个链接并且该值出现在url上时,我不希望当我单击相同的链接时再次出现该值,但是当我单击一次该链接时,我仍然希望单击其他链接。 >

有办法吗?

我这里有一个有效的代码,它的作用是在当前URL中添加一个变量和值。我所做的是使用PHP函数c_url(){$ cUrl =“ http://”。$ _ SERVER ['...

php html url hyperlink query-string
1个回答
1
投票

您需要从查询字符串中删除您不想重复的值。您可以通过将该参数的名称传递给函数并将其从$_GET超全局变量中删除,然后构建一个新字符串来实现。

function c_url($key) {
    unset($_GET[$key]);
    $queryString = http_build_query($_GET);

    return $_SERVER['HTTP_HOST'].$_SERVER['SCRIPT_NAME'].'?'.$queryString;
}

// Pass "b" to the function to remove it from the echo'd URL
echo c_url('b') . '&b=5';
© www.soinside.com 2019 - 2024. All rights reserved.