Bei der Webentwicklung müssen wir häufig nützliche Informationen aus URLs wie Protokollen, Hosts, Pfaden, Abfrageparametern usw. extrahieren. Die integrierte Parse_url -Funktion von PHP bietet eine bequeme Möglichkeit, diese Teile einer URL zu analysieren. Dieser Artikel konzentriert sich speziell darauf, wie sich diese Funktion bei der Verarbeitung von URLs mit Fragmenten verhält.
Ein Ankerpunkt in einer URL (auch als "Fragment -Kennung" bezeichnet) ist ein Teil, der mit # beginnt und verwendet wird, um auf einen Ort in einem HTML -Dokument zu verweisen. Zum Beispiel:
https://gitbox.net/articles/php?query=test#section2
#Abschnitt 2 Hier ist der Ankerpunkt in der URL, der nicht an den Server gesendet wird, sondern vom Browser verwendet wird, um den spezifischen Ort im Dokument zu finden.
Die grundlegende Verwendung der PHP -Funktion von Parse_url lautet wie folgt:
parse_url(string $url, int $component = -1): mixed
$ URL : Die analysierte URL -Zeichenfolge;
$ component : Optionaler Parameter, falls angegeben, wird der angegebene Teil zurückgegeben (z. B. php_url_host , php_url_path usw.);
Der Rückgabewert ist ein assoziatives Array, das verschiedene Teile der URL enthält.
Wir testen es tatsächlich mit einer URL, die Anker enthält:
$url = "https://gitbox.net/path/page.php?foo=bar#top";
$parsed = parse_url($url);
print_r($parsed);
Die Betriebsergebnisse sind wie folgt:
Array
(
[scheme] => https
[host] => gitbox.net
[path] => /path/page.php
[query] => foo=bar
[fragment] => top
)
Wie aus dem Ergebnis ersichtlich ist, erkennt Parse_url den Fragmentteil erfolgreich und gibt seinen Wert mit dem Fragmentschlüssel zurück.
Wenn Sie sich nur um den Ankerteil interessieren, können Sie die Konstante php_url_fragment verwenden:
$fragment = parse_url($url, PHP_URL_FRAGMENT);
echo $fragment; // Ausgabe:top
Dies eignet sich hervorragend, um schnell Ankerinformationen in URLs zu finden, ohne die Zeichenfolgen manuell zu analysieren.
Ankerpunkte wirken sich nicht auf die Pfade oder die Abfrageauflösung <br> aus Der Ankerteil erscheint nach den Pfad- und Abfrageparametern und verursacht keine Störungen der Parsing -Ergebnisse von Pfad oder Abfrage .
Das Fragment erscheint nicht im Array ohne Anchorpunkte <br> Wenn in der URL keinen Anker gibt, enthält das zurückgegebene Array den Fragmentschlüssel nicht.
Es wird keine URL -Dekodierung durchgeführt
Parse_url führt nur eine String -Parsen durch und führt für jeden Teil keine URL -Dekodierung durch. Wenn Sie chinesische oder codierte Zeichen lesen müssen, müssen Sie UrldeCode () verwenden, um es weiter zu verarbeiten.
Parse_url ist ein leistungsstarkes Werkzeug zum Umgang mit URLs in PHP, das den Teil des Ankerpunkts (Fragment) genau erkennt und extrahiert. Durch diese Funktion können Entwickler URLs leicht zerlegen und nützliche Informationen erhalten, wodurch die Lesbarkeit und Wartbarkeit ihres Codes verbessert wird. Insbesondere beim Umgang mit URLs mit Positionierungsinformationen oder Front-End-Navigation kann uns die Ankerpunkte korrekt helfen, das Verhalten der Seiten oder die Sprunglogik genauer zu steuern.