PHP: ydnetParseURL - Wrapper für parse_url()
Eine Wrapper-Funktion für parse_url(), die die nicht in einer URL enthaltenen Bestandteile auf Default-Werte setzt, so dass es auch ohne
isset()-Abfrage keine "Notice: Undefined index"-Fehlermeldungen gibt.
<?php
function ydnetParseURL($url)
/* Wrapper für parse_url(), der die nicht in einer URL enthaltenen
Bestandteile auf Default-Werte setzt, so dass es auch ohne
isset()-Abfrage keine "Notice: Undefined index"-Fehlermeldungen
gibt (E_ALL).
scheme: Wird auf 'file' gesetzt falls keine Angabe wie
'http://' enthalten ist.
port : Wird auf null oder bei http, https, ftp und ftps auf die
jeweilige Default Portnummer, z.B. 80 bei http, gesetzt.
andere: Alle anderen Werte werden auf den Leerstring '' gesetzt,
falls sie nicht angegeben sind.
*/
{
$defaultPorts = array('http' => 80,
'https' => 443,
'ftp' => 21,
'ftps' => 990);
$url = parse_url($url);
if(false === $url)
{
return $url;
}
if(!isset($url['scheme'])){$url['scheme'] = 'file';}
if(!isset($url['host'])) {$url['host'] = '';}
if(!isset($url['port']))
{
if(isset($defaultPorts[$url['scheme']]))
{
$url['port'] = $defaultPorts[$url['scheme']];
}
else
{
$url['port'] = null;
}
}
if(!isset($url['user'])) {$url['user'] = '';}
if(!isset($url['pass'])) {$url['pass'] = '';}
if(!isset($url['path'])) {$url['path'] = '';}
if(!isset($url['query'])) {$url['query'] = '';}
if(!isset($url['fragment'])){$url['fragment'] = '';}
return $url;
}// ydnetParseURL
$url = ydnetParseURL('http://www.example.org/');
var_dump($url);
?>
Ausgabe für http://www.example.org/
array(8) {
["scheme"]=>
string(4) "http"
["host"]=>
string(15) "www.example.org"
["path"]=>
string(1) "/"
["port"]=>
int(80)
["user"]=>
string(0) ""
["pass"]=>
string(0) ""
["query"]=>
string(0) ""
["fragment"]=>
string(0) ""
}
