New version:
PHP Code:
function cleanup_url($url)
{
$parsed = parse_url($url);
$output = '';
if (isset($parsed['scheme']))
$output .= "$parsed[scheme]://";
else
$output .= 'http://';
if (isset($parsed['user']) && isset($parsed['pass']))
$output .= "$parsed[user]:$parsed[pass]@";
elseif (isset($parsed['user']))
$output .= "$parsed[user]@";
if (isset($parsed['host']))
$output .= rawurlencode(rawurldecode($parsed['host']));
if (isset($parsed['path']))
$output .= "$parsed[path]";
else
$output .= '/';
if (isset($parsed['query']))
$output .= '?' . urlencode(urldecode($parsed['query']));
if (isset($parsed['fragment']))
$output .= "#$parsed[fragment]";
if (isset($parsed['scheme']))
return $output;
else
return cleanup_url($output);
}
What's new:
- If no scheme is specified (eg. http, https, ftp) "http" is assumed
- If no path is specified (eg. /newreply.php) "/" is assumed