如何使具有值的变量在 url php 上出现一次
How To Make A variable with value appear once on the url php
我这里有一个有效的代码,它的作用是向当前 url 添加一个变量和值。
我所做的是使用
获取当前的 url
PHP
function c_url() {
$cUrl = "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
$vUrl = str_replace("&", "&", $cUrl);
return $vUrl;
}
然后当我单击 html link 时,它会向 url
添加一个具有值的变量
HTML 链接
<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 上的相同变量和值,直到它被填满。
所以我想要的是,当我单击 link 并且值出现在 url 上时,我不希望它在我单击相同的 link 时再次出现,但我仍然想要其他link我点击一次就会点击。
有办法吗?
您需要从查询字符串中删除不想复制的值。您可以通过将该参数的名称传递给您的函数并将其从 $_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';
输出:
http://http://www.example.com/test.php?a=1&c=3&b=5
演示
$_GET = [
'a' => 1,
'b' => 2,
'c' => 3,
];
$_SERVER = [
'HTTP_HOST' => 'http://www.example.com',
'SCRIPT_NAME' => '/test.php',
];
function c_url($key) {
unset($_GET[$key]);
$queryString = http_build_query($_GET);
return $_SERVER['HTTP_HOST'].$_SERVER['SCRIPT_NAME'].'?'.$queryString;
}
echo c_url('b') . '&b=5';
我这里有一个有效的代码,它的作用是向当前 url 添加一个变量和值。 我所做的是使用
获取当前的 urlPHP
function c_url() {
$cUrl = "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
$vUrl = str_replace("&", "&", $cUrl);
return $vUrl;
}
然后当我单击 html link 时,它会向 url
添加一个具有值的变量HTML 链接
<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 上的相同变量和值,直到它被填满。 所以我想要的是,当我单击 link 并且值出现在 url 上时,我不希望它在我单击相同的 link 时再次出现,但我仍然想要其他link我点击一次就会点击。
有办法吗?
您需要从查询字符串中删除不想复制的值。您可以通过将该参数的名称传递给您的函数并将其从 $_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';
输出:
http://http://www.example.com/test.php?a=1&c=3&b=5
演示
$_GET = [
'a' => 1,
'b' => 2,
'c' => 3,
];
$_SERVER = [
'HTTP_HOST' => 'http://www.example.com',
'SCRIPT_NAME' => '/test.php',
];
function c_url($key) {
unset($_GET[$key]);
$queryString = http_build_query($_GET);
return $_SERVER['HTTP_HOST'].$_SERVER['SCRIPT_NAME'].'?'.$queryString;
}
echo c_url('b') . '&b=5';