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

我有一个这样的网址:


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=as

muliba/?i=page.alama&pro=en

谢谢


慕码人2483693
浏览 112回答 1
1回答

饮歌长啸

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>
打开App,查看更多内容
随时随地看视频慕课网APP