PHP function to remove key from a query string
I have a query string, like:
n1=v1&n2=v2&n3=v3
etc
I just want a php function that will accept the query string and the name (key), and remove the name value pair from the querystring开发者_开发知识库.
Every example I have found uses regexes and assumes that the value will exist and that it will not be empty, but in my case (and possibly in general, I would like to know) this would also be a valid query:
n1=v1&n2=&n3
I don’t know in advance how many keys there will be.
I am convinced that regexes are monsters that eat time. Eventually all matter in the universe will end up in a regex.
parse_str('n1=v1&n2=&n3', $gets);
unset($gets['n3']);
echo http_build_query($gets);
NOTE: unset($gets['n3']);
is just a show-case example
function stripkey($input, $key) {
$parts= explode("&", $input);
foreach($parts as $k=>$part) {
if(strpos($part, "=") !== false) {
$parts2= explode("=", $part);
if($key == $parts2[0]){
unset($parts[$k]);
}
}
}
return join("&", $parts);
}
精彩评论