PHP Add and Remove Query Strings
Found a couple of useful PHP code snippets for adding and removing query strings from URLs. This is useful when implementing paged and search functionality, among other things. These functions work great and are a real time saver — copy, paste, test, and done.
Add query-string variable
This PHP function adds a query-string variable to the specified $url
. The appended query-string variable will include the specified $key
and $value
. If $key
already exists in the $url
, it will be replaced with the new $value
.
function add_querystring_var($url, $key, $value) {
$url = preg_replace('/(.*)(?|&)' . $key . '=[^&]+?(&)(.*)/i', '$1$2$4', $url . '&');
$url = substr($url, 0, -1);
if (strpos($url, '?') === false) {
return ($url . '?' . $key . '=' . $value);
} else {
return ($url . '&' . $key . '=' . $value);
}
}
No modifications need made to this function. Simply add to your PHP script and call as needed, for example:
$url = add_querystring_var($url, $key, $value);
Remove query-string variable
Here is a similar function that will remove the specified query-string $key
from the $url
.
function remove_querystring_var($url, $key) {
$url = preg_replace('/(.*)(?|&)' . $key . '=[^&]+?(&)(.*)/i', '$1$2$4', $url . '&');
$url = substr($url, 0, -1);
return ($url);
}
As before, no modifications need made to this function. Simply add to your PHP script and call as needed, for example:
$url = remove_querystring_var($url, $key);
Thanks to addedbytes.com for the code!