php URL $_GET 累加上去?

发布于 2022-09-07 03:27:32 字数 464 浏览 14 评论 0

想問一下
我想讓網址get能夠累加上去
比如說現在的網址是

region=abc&status=1

當我可能進入另一個網址後
我想讓他在後面加上 &xxx=1
但是不會洗掉前面的GET參數

region=abc&status=1&xxx=1

無論前面有多少GET參數都會加上去,但重複的就不加
這樣我就不需要再網址那邊重新定義有幾個GET參數了
只要網址上沒有相同的參數就累加上去
這個有什麼代碼可以做到?

補充
但如果網址沒有任何參數 此時要加參數時
它能自動判別,也就是說變成

xxx.php?xxx=xxx

而不是&
除非前面已經有?了則會是&

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

小兔几 2022-09-14 03:27:32

你可以试试这个

$url = 'xxx.php?xxx=xxx';
$params = [
    'region' => 'abc',
    'status' => 1
];
$urlParams = http_build_query($params);

if(strpos($url, '?')){
    echo $url.$urlParams;
}else{
    echo $url.'?'.$urlParams;
}
空城旧梦 2022-09-14 03:27:32

你好这个问题很简单:
1)一般这种需求用在商品列表条件筛选的业务上面
比如:鞋 我想选择红色,42号
2)使用js先获取当前的url,然后直接拼接到上面就可以了
代码如下:
var host = window.location.href; //获取url
window.location.href = url+ "/xxx/1"; //拼接url
解决问题

同展鸳鸯锦 2022-09-14 03:27:32

http_build_query

许一世地老天荒 2022-09-14 03:27:32
// 先来一个也是在当前网站上看到的函数
function parse_url(url)
{
    var a = document.createElement('a');
    a.href = url;
    return {
        source:url,
        protocol:a.protocol.replace(':', ''),
        host:a.hostname,
        port:a.port,
        query:a.search,
        params:(function(){
            var ret = {}, seg = a.search.replace(/^\?/, '').split('&'), len = seg.length, i = 0, s;
            for(;i<len;i++) {
                if(!seg[i]) {
                    continue;
                }
                s = seg[i].split('=');
                ret[s[0]] = s[1];
            }
            return ret;
        })(),
        file:(a.pathname.match(/\/([^\/?#]+)$/i) || [, ''])[1],
        hash:a.hash.replace('#', ''),
        path:a.pathname.replace(/^([^\/])/, '/$1'),
        segments:a.pathname.replace(/^\//, '').split('/')
    };
}
  1. 通过js将所有链接添加点击事件
  2. 事件中通过parse_url解析当前页面地址及目标页面地址
  3. 合并解析后两地址的请求参数
  4. 拼接最终跳转地址
  5. 阻止默认行为

如果要通过php的话, 那得通过函数来生成链接

  1. 解析目标链接
  2. 合并参数
  3. 返回最终访问链接
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文