parse_url
Analysiert eine URL und gibt ihre Bestandteile zurück
Beschreibung
mixed parse_url
( string $url
[, int $component = -1
] )
Diese Funktion ist nicht dazu gedacht,
einen gegebenen URL zu validieren, sondern es gliedert einen URL in die
unten aufgeführten Bestandteile. Unvollständige URLs werden als Parameter
akzeptiert, parse_url versucht, sie bestmöglich zu
analysieren.
Parameter-Liste
-
url
-
Der zu parsende URL. Ungültige Zeichen werden durch _
ersetzt.
-
component
-
Geben Sie einen der folgenden Parameter an, um nur einen spezifischen
Teil des URL als String (außer wenn
PHP_URL_PORT angegeben wird, in welchem Fall der
Rückgabewert ein Integer ist) zu erhalten:
Geben Sie entweder PHP_URL_SCHEME,
PHP_URL_HOST, PHP_URL_PORT,
PHP_URL_USER, PHP_URL_PASS,
PHP_URL_PATH, PHP_URL_QUERY
oder PHP_URL_FRAGMENT an.
Rückgabewerte
Bei sehr fehlerhaften URLs kann parse_url FALSE
zurückgeben.
Wird der component Parameter ausgelassen, wird ein
assoziatives Array zurückgegeben. Mindestens ein Bestandteil liegt
im Array vor. Mögliche Schlüssel in diesem Array sind:
-
scheme - z.B. http
-
host
-
port
-
user
-
pass
-
path
-
query - alles nach dem Fragezeichen
?
-
fragment - alles nach dem Textanker
#
Ist der Parameter component angegeben, gibt
parse_url ein
String (oder ein Integer, im Fall von
PHP_URL_PORT) anstelle des normalen Array zurück.
Beispiele
Beispiel #1 Ein parse_url-Beispiel
<?php
$url = 'http://benutzername:passwort@hostname:9090/pfad?argument=wert#textanker';
var_dump(parse_url($url));
var_dump(parse_url($url, PHP_URL_SCHEME));
var_dump(parse_url($url, PHP_URL_USER));
var_dump(parse_url($url, PHP_URL_PASS));
var_dump(parse_url($url, PHP_URL_HOST));
var_dump(parse_url($url, PHP_URL_PORT));
var_dump(parse_url($url, PHP_URL_PATH));
var_dump(parse_url($url, PHP_URL_QUERY));
var_dump(parse_url($url, PHP_URL_FRAGMENT));
?>
Das oben gezeigte Beispiel erzeugt folgende
Ausgabe:
array(8) {
["scheme"]=>
string(4) "http"
["host"]=>
string(8) "hostname"
["port"]=>
int(9090)
["user"]=>
string(12) "benutzername"
["pass"]=>
string(8) "passwort"
["path"]=>
string(5) "/pfad"
["query"]=>
string(13) "argument=wert"
["fragment"]=>
string(9) "textanker"
}
string(4) "http"
string(12) "benutzername"
string(8) "passwort"
string(8) "hostname"
int(9090)
string(5) "/pfad"
string(13) "argument=wert"
string(9) "textanker"
Beispiel #2 Ein parse_url-Beispiel mit fehlendem Schema
<?php
$url = '//www.example.com/path?googleguy=googley';
// Vor 5.4.7 wurde der Pfad als "//www.example.com/path" angezeigt
var_dump(parse_url($url));
?>
Das oben gezeigte Beispiel erzeugt folgende
Ausgabe:
array(3) {
["host"]=>
string(15) "www.example.com"
["path"]=>
string(5) "/path"
["query"]=>
string(17) "googleguy=googley"
}
Anmerkungen
Hinweis:
Diese Funktion verarbeitet keine relativen URLs.
Hinweis:
Die Funktion ist primär dazu gedacht, URLs zu parsen, nicht jedoch URIs. Um
jedoch die Abwärtskompatibilität von PHP zu gewährleisten, wird für das
Schema file:// die Ausnahme dreier Slashes (file:///) zugelassen. Bei allen
anderen Schemata ist diese Notierung ungültig.
Siehe auch
- pathinfo
- parse_str
- http_build_query
- http_build_url
- dirname
- basename
- » RFC 3986