browser lang:en
getLink() is a function that will make creating URLs much easier. This function expects two arguments - the first argument is the URL and the second one is an array with all the parameters that should be passed with the URL. The function will combine the existing URL with the parameter array and return the resulting URL.
One important thing to note is that the final URL will use '&' to separate the parameters instead of just '&'. This is to ensure valid HTML in the output. If you don't like that, just str_replace() it out.
If there is extra parameters in the first URL, that will be present in the final URL.
Arguments
First Argument ($url)
The base URL. The parameters will be added to this.
Second Argument ($params)
An associative array containing all the parameters and their values.
Third Argument ($use_existing_arguments)
This is an optional argument. If this is set to 'true', the function will use the parameters that are present in the current page along with the $params array when creating the URL.
Example Code
Two Arguments
getLink("http://www.google.com/search",array(
"q"=>"binny",
"hello"=>"world",
"results"=>10)
);
getLink("http://www.example.com/edit.php",array(
"item_id" => 15,
"return_url"=> 'index.php'
),
true);
/**
* Create a link by joining the given URL and the parameters given as the second argument.
* Arguments : $url - The base url.
* $params - An array containing all the parameters and their values.
* $use_existing_arguments - Use the parameters that are present in the current page
* Return : The new url.
* Example :
* getLink("http://www.google.com/search",array("q"=>"binny","hello"=>"world","results"=>10));
* will return
* http://www.google.com/search?q=binny&hello=world&results=10
*/
function getLink($url,$params=array(),$use_existing_arguments=false) {
if($use_existing_arguments) $params = $params + $_GET;
if(!$params) return $url;
$link = $url;
if(strpos($link,'?') === false) $link .= '?'; //If there is no '?' add one at the end
elseif(!preg_match('/(\?|\&(amp;)?)$/',$link)) $link .= '&'; //If there is no '&' at the END, add one.
$params_arr = array();
foreach($params as $key=>$value) {
if(gettype($value) == 'array') { //Handle array data properly
foreach($value as $val) {
$params_arr[] = $key . '[]=' . urlencode($val);
}
} else {
$params_arr[] = $key . '=' . urlencode($value);
}
}
$link .= implode('&',$params_arr);
return $link;
}
Have you ever had to develop something yourself only to find out that there had already been…
in:JQuery (0 comments)The situation begins with your blog or website and you need to post some code on a particular…
in:The Holy Faq's (0 comments)So. Google just recently announced Google Buzz. I’m not sure about you, but I…
in:Blog (0 comments)There's lots of clever scripts around to tell you how to get images in and out of…
in:PHP scripts (0 comments)Spherical Law of Cosines Suppose that we want to find the five nearest places to (47.470779, -87.890699) using Spherical…
in:MySql (0 comments)I have always used Dreamweaver, and love it. But, I have been thinking, what are the FREE CSS…
in:Free Software (0 comments)Advanced Linux Sound Architecture (known by the acronym ALSA) is a Linux kernel component intended to replace the…
in:Blog (0 comments)The Singleton Pattern is one of the GoF (Gang of Four) Patterns. This particular pattern provides a…
in:Scripts and tutorials (0 comments)
