PHP
So zerlegen Sie eine URL
Suche…
Einführung
Wenn Sie PHP programmieren, werden Sie höchstwahrscheinlich in die Lage versetzt, eine URL in mehrere Teile aufzuteilen. Es gibt natürlich mehr als eine Möglichkeit, dies je nach Ihren Bedürfnissen zu tun. In diesem Artikel werden diese Möglichkeiten erläutert, damit Sie herausfinden können, was für Sie am besten geeignet ist.
Parse_url () verwenden
parse_url (): Diese Funktion analysiert eine URL und gibt ein assoziatives Array zurück, das eine der verschiedenen vorhandenen Komponenten der URL enthält.
$url = parse_url('http://example.com/project/controller/action/param1/param2');
Array
(
[scheme] => http
[host] => example.com
[path] => /project/controller/action/param1/param2
)
Wenn Sie den Pfad getrennt benötigen, können Sie explodieren
$url = parse_url('http://example.com/project/controller/action/param1/param2');
$url['sections'] = explode('/', $url['path']);
Array
(
[scheme] => http
[host] => example.com
[path] => /project/controller/action/param1/param2
[sections] => Array
(
[0] =>
[1] => project
[2] => controller
[3] => action
[4] => param1
[5] => param2
)
)
Wenn Sie den letzten Teil des Abschnitts benötigen, können Sie end () wie folgt verwenden:
$last = end($url['sections']);
Wenn die URL GET-Variablen enthält, können Sie auch diese abrufen
$url = parse_url('http://example.com?var1=value1&var2=value2');
Array
(
[scheme] => http
[host] => example.com
[query] => var1=value1&var2=value2
)
Wenn Sie die Abfrage-Variablen auflösen möchten, können Sie parse_str () folgendermaßen verwenden:
$url = parse_url('http://example.com?var1=value1&var2=value2');
parse_str($url['query'], $parts);
Array
(
[var1] => value1
[var2] => value2
)
Explode verwenden ()
explode (): Gibt ein Array von Strings zurück, von denen jeder ein Teilstring eines Strings ist, der durch Aufteilen auf die vom String-Trennzeichen gebildeten Grenzen gebildet wird.
Diese Funktion ist ziemlich einfach.
$url = "http://example.com/project/controller/action/param1/param2";
$parts = explode('/', $url);
Array
(
[0] => http:
[1] =>
[2] => example.com
[3] => project
[4] => controller
[5] => action
[6] => param1
[7] => param2
)
Sie können den letzten Teil der URL auf folgende Weise abrufen:
$last = end($parts);
// Output: param2
Sie können auch innerhalb des Arrays navigieren, indem Sie sizeof () in Kombination mit einem mathematischen Operator wie folgt verwenden:
echo $parts[sizeof($parts)-2];
// Output: param1
Basename verwenden ()
basename (): Bei Angabe einer Zeichenfolge, die den Pfad zu einer Datei oder einem Verzeichnis enthält, gibt diese Funktion die nachfolgende Namenskomponente zurück.
Diese Funktion gibt nur den letzten Teil einer URL zurück
$url = "http://example.com/project/controller/action/param1/param2";
$parts = basename($url);
// Output: param2
Wenn Ihre URL mehr Informationen enthält und Sie den Verzeichnisnamen benötigen, der die Datei enthält, können Sie sie mit dirname () wie folgt verwenden:
$url = "http://example.com/project/controller/action/param1/param2/index.php";
$parts = basename(dirname($url));
// Output: param2