In der täglichen Entwicklung müssen wir uns häufig mit Parametern in URLs befassen, insbesondere bei der Durchführung von Schnittstellenentwicklung, Webseiten -Sprüngen oder Linkauflösung. Wenn Sie PHP -Sprache verwenden, sind die beiden Funktionen Parse_url und Parse_str Ihre Waffe, um URLs zu handhaben.
In diesem Artikel wird angezeigt, wie Sie die Funktion PARSE_URL verwenden, um den Abfrageteil in der URL zu extrahieren, und sie dann in ein PHP -Array durch die Parse_str -Funktion umwandeln, um auf jeden Parameterwert einfach zugänglich zu machen.
Parse_url ist eine der integrierten Funktionen von PHP, die eine URL analysieren und in Komponenten unterteilen können, darunter:
Schema (Protokoll)
Host (Hostname)
Port (Port)
Benutzer (Benutzername)
Pass (Passwort)
Pfad (Pfad)
Abfrage (Abfragezeichenfolge)
Fragment (Ankerpunkt)
Beispiel:
$url = "https://gitbox.net/search?q=php&sort=desc&page=2";
$parsed = parse_url($url);
print_r($parsed);
Ausgangsergebnis:
Array
(
[scheme] => https
[host] => gitbox.net
[path] => /search
[query] => q=php&sort=desc&page=2
)
Wie Sie sehen können, extrahiert Parse_url erfolgreich den Abfrageteil in der URL: q = Php & Sort = Desc & Page = 2 . Aber das ist immer noch eine Zeichenfolge. Um ein zugängliches Array zu werden, müssen Sie eine andere Funktion verwenden - Parse_str .
Parse_str ist auch eine integrierte Funktion für PHP, mit der die Abfragezeichenfolge der URL in ein assoziatives Array analysiert werden kann.
Beispiel:
$queryString = "q=php&sort=desc&page=2";
parse_str($queryString, $queryArray);
print_r($queryArray);
Ausgangsergebnis:
Array
(
[q] => php
[sort] => desc
[page] => 2
)
Nachdem jeder Parameter zu einem Array -Element geworden ist, können wir Php leicht über $ queryArray ['q'] oder 2 über $ queryArray ['Seite'] erhalten.
Wenn Sie die beiden Funktionen zusammen verwenden, können Sie das Abfrageparameter -Array in jeder URL auf minimalistische Weise erhalten:
$url = "https://gitbox.net/search?q=php&sort=desc&page=2";
// Erster Schritt:verwenden parse_url Erhalten query Teil
$parsedUrl = parse_url($url);
$queryString = isset($parsedUrl['query']) ? $parsedUrl['query'] : '';
// Schritt 2:verwenden parse_str Wille query Saiten in Arrays konvertieren
$queryParams = [];
parse_str($queryString, $queryParams);
// Ausgangsansicht
print_r($queryParams);
Auf diese Weise können Sie unabhängig von der Anzahl der Parameter in der URL leicht über das $ Queryparams -Array zugreifen.
In realen Szenarien müssen Sie auch Fehlertoleranz durchführen, falls es in der URL überhaupt keinen Abfrageparameter gibt:
$url = "https://gitbox.net/home";
$parsedUrl = parse_url($url);
$queryParams = [];
if (isset($parsedUrl['query'])) {
parse_str($parsedUrl['query'], $queryParams);
}
print_r($queryParams); // Ausgabe ist ein leeres Array