PHP add variable to URL

This function inserts a variable to an URL string and will return the new string/url adjusting the "?" or "&" character properly:

Example

add_var_to_url("total_items", 10, "http://example.com?sort_by=price");

will return:

http://example.com?sort_by=price&total_items=10

It will also replace variable if needed:

add_var_to_url("total_items", 10, "http://example.com?total_items=5&sort_by=price");

will return:

http://example.com?sort_by=price&total_items=10

The complete function is

<?php
if(!function_exists("add_var_to_url")){
	function add_var_to_url($variable_name,$variable_value,$url_string){
		// first we will remove the var (if it exists)
		// test if url has variables (contains "?")
		if(strpos($url_string,"?")!==false){
			$start_pos = strpos($url_string,"?");
			$url_vars_strings = substr($url_string,$start_pos+1);
			$names_and_values = explode("&",$url_vars_strings);
			$url_string = substr($url_string,0,$start_pos);
			foreach($names_and_values as $value){
				list($var_name,$var_value)=explode("=",$value);
				if($var_name != $variable_name){
					if(strpos($url_string,"?")===false){
						$url_string.= "?";
					} else {
						$url_string.= "&";
					}
					$url_string.= $var_name."=".$var_value;
				}
			}
		} 
		// add variable name and variable value
		if(strpos($url_string,"?")===false){
			$url_string .= "?".$variable_name."=".$variable_value;
		} else {
			$url_string .= "&".$variable_name."=".$variable_value;
		}
		return $url_string;
	}
}?>

The oposite function (remove variable from url) is also available.

Download the files

Download the function PHP file (1KB)