为了账号安全,请及时绑定邮箱和手机立即绑定

如何获取当前 URL 并更改参数 PHP

如何获取当前 URL 并更改参数 PHP

PHP
慕码人2483693 2023-05-26 17:18:37
我有一个这样的网址:muliba/?i=page.alama&pro=as我创建了一个这样的链接:<a href="<?php echo http://".$_SERVER['HTTP_HOST'].$_SERVER["REQUEST_URI"]."&pro=as";?>">AS</a><a href="<?php echo http://".$_SERVER['HTTP_HOST'].$_SERVER["REQUEST_URI"]."&pro=en";?>">EN</a>如果我打开链接,参数将添加到已定义的参数旁边,如下所示:muliba/?i=page.alama&pro=as&pro=en我怎样才能得到这样的结果?muliba/?i=page.alama&pro=asmuliba/?i=page.alama&pro=en谢谢
查看完整描述

1 回答

?
饮歌长啸

TA贡献1951条经验 获得超3个赞

function merge_querystring($url = null,$query = null,$recursive = false){

  // $url = 'https://www.google.com?q=apple&type=keyword';

  // $query = '?q=banana';

  // if there's a URL missing or no query string, return

  if($url == null)

    return false;

  if($query == null)

    return $url;

  // split the url into it's components

  $url_components = parse_url($url);

  // if we have the query string but no query on the original url

  // just return the URL + query string

  if(empty($url_components['query']))

    return $url.'?'.ltrim($query,'?');

  // turn the url's query string into an array

  parse_str($url_components['query'],$original_query_string);

  // turn the query string into an array

  parse_str(parse_url($query,PHP_URL_QUERY),$merged_query_string);

  // merge the query string

  if ($recursive == true) {

    $merged_result = array_filter(array_merge_recursive($original_query_string, $merged_query_string));

} else {

    $merged_result = array_filter(array_merge($original_query_string, $merged_query_string));

}


// Find the original query string in the URL and replace it with the new one

$new_url = str_replace($url_components['query'], http_build_query($merged_result), $url);


// If the last query string removed then remove ? from url 

if(substr($new_url, -1) == '?') {

   return rtrim($new_url,'?');

}

return $new_url;

}

用法


<a href="<?=merge_querystring($url,'?pro=en');?>">EN</a>

<a href="<?=merge_querystring($url,'?pro=as');?>">AS</a>


查看完整回答
反对 回复 2023-05-26
  • 1 回答
  • 0 关注
  • 82 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信