note 29261 added to function.parse-url
| From: | Daniel at rack1 dot php dot net | Date: | Fri, 07 Feb 2003 15:38:12 +0000 |
| Subject: | note 29261 added to function.parse-url | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-43572@lists.php.net to get a copy of this message | ||
My version of the glue function, and adding/removing parts of query strings...
function unparse_url($parts_arr) {
if (strcmp($parts_arr['scheme'], '') != 0) {
$ret_url = $parts_arr['scheme'] . '://';
}
$ret_url .= $parts_arr['user'];
if (strcmp($parts_arr['pass'], '') != 0) {
$ret_url .= ':' . $parts_arr['pass'];
}
if ((strcmp($parts_arr['user'], '') != 0) ||
(strcmp($parts_arr['pass'], '') != 0)) {
$ret_url .= '@';
}
$ret_url .= $parts_arr['host'];
if (strcmp($parts_arr['port'], '') != 0) {
$ret_url .= ':' . $parts_arr['port'];
}
$ret_url .= $parts_arr['path'];
if (strcmp($parts_arr['query'], '') != 0) {
$ret_url .= '?' . $parts_arr['query'];
}
if (strcmp($parts_arr['fragment'], '') != 0) {
$ret_url .= '#' . $parts_arr['fragment'];
}
return $ret_url;
}
function add_query_arg($url, $arg, $val) {
$parts_arr = parse_url($url);
if (strcmp($parts_arr['query'], '') != 0) $parts_arr['query'] .=
'&';
$parts_arr['query'] .= $arg . '=' . $val;
return unparse_url($parts_arr);
}
function remove_query_arg($url, $arg) {
$parts_arr = parse_url($url);
if (!strcmp($parts_arr['query'], '')) return $url;
$query_arr = explode('&', $parts_arr['query']);
foreach ($query_arr as $k => $v) {
if ((preg_match('/^'.$arg.'=/', $v)) ||
(preg_match('/^'.$arg.'$/', $v))) {
unset($query_arr[$k]);
}
}
$parts_arr['query'] = implode('&', $query_arr);
return unparse_url($parts_arr);
}
--
http://www.php.net/manual/en/function.parse-url.php
http://master.php.net/manage/user-notes.php?action=edit+29261
http://master.php.net/manage/user-notes.php?action=delete+29261
http://master.php.net/manage/user-notes.php?action=reject+29261