parse_url
(PHP 4, PHP 5)
parse_url — Analysiert eine URL und gibt ihre Bestandteile zurück
Beschreibung
Diese Funktion parst einen URL und gibt ein assoziatives Array zurück, das die im URL vorhandenen Komponenten enthält.
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_PORTangegeben wird, in welchem Fall der Rückgabewert ein Integer ist) zu erhalten: Geben Sie entwederPHP_URL_SCHEME,PHP_URL_HOST,PHP_URL_PORT,PHP_URL_USER,PHP_URL_PASS,PHP_URL_PATH,PHP_URL_QUERYoderPHP_URL_FRAGMENTan.
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.
Changelog
| Version | Beschreibung |
|---|---|
| 5.4.7 | Host-Erkennung bei fehlendem Schema und führendem Komponententrenner korrigiert. |
| 5.3.3 | E_WARNING für fehlerhafte URLs entfernt. |
| 5.1.2 | component-Parameter hinzugefügt |
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() - Liefert Informationen über einen Dateipfad
- parse_str() - Überträgt einen String in Variable
- http_build_query() - Erstellen eines URL-kodierten Query-Strings
- http_build_url() - Build a URL
- dirname() - Beschreibung
- basename() - Gibt letzten Namensteil einer Pfadangabe zurück
- » RFC 3986