Aktueller Standort: Startseite> Neueste Artikel> Verwenden Sie Parse_url, um die Quelle der angeforderten Adresse des Benutzers zu analysieren

Verwenden Sie Parse_url, um die Quelle der angeforderten Adresse des Benutzers zu analysieren

gitbox 2025-05-26

Während des Entwicklungsprozesses von Websites ist es eine sehr wichtige Funktion, um zu verstehen, wo Benutzer auf Ihre Seiten zugreifen, insbesondere in Statistiken, Sprungregelung, Berechtigungsprüfungen und Protokollierung. PHP bietet eine integrierte Funktion parse_url , mit der Komponenten aus einer URL problemlos extrahieren können, z. B. Protokoll, Host, Pfad, Abfrageparameter usw. In diesem Artikel wird vorgestellt, wie PARSE_URL verwendet wird, um die Quellinformationen der angeforderten Adresse des Benutzers zu analysieren.

1. Einführung in die Funktion PARSE_URL

Parse_url ist eine Funktion, die in PHP verwendet wird, um URLs zu analysieren. Die grundlegende Syntax ist wie folgt:

 parse_url(string $url, int $component = -1): array|string|false
  • $ url ist die URL -Zeichenfolge, die analysiert werden muss.

  • $ component ist ein optionaler Parameter, der angibt, dass nur ein bestimmter Teil der URL zurückgegeben wird (z. B. php_url_host , php_url_path usw.).

  • Der Rückgabewert ist ein Array, das die verschiedenen Komponenten der URL enthält. Wenn $ -Komponente angegeben ist, wird die Zeichenfolge des entsprechenden Teils zurückgegeben. Wenn die URL ungültig ist, ist die Rückgabe falsch .

2. Ermitteln Sie die URL der Benutzerquelle

Die Benutzerquellenadresse wird im Allgemeinen in der Variablen $ _server ['http_referer'] gespeichert. Dadurch können wir wissen, auf welcher Seite der Benutzer gesprungen ist.

 $referer = $_SERVER['HTTP_REFERER'] ?? '';

Als nächstes verwenden wir Parse_url , um die Adresse zu analysieren:

 if (!empty($referer)) {
    $urlParts = parse_url($referer);
    print_r($urlParts);
}

Wenn der Benutzer von https://gitbox.net/products/view?id=123 sprang, ist die Ausgabe ähnlich zu:

 Array
(
    [scheme] => https
    [host] => gitbox.net
    [path] => /products/view
    [query] => id=123
)

3.. Spezifische Informationen extrahieren

1. Extrahieren Sie den Hostnamen

Um den Quellhostnamen zu erhalten, können Sie ihn so schreiben:

 $host = parse_url($referer, PHP_URL_HOST);
echo "Quell Host:$host";

2. Holen Sie sich Pfad- und Abfrageparameter

Möglicherweise möchten Sie auch wissen, auf welcher Seite der Benutzer stammt, und verwenden Sie den folgenden Code:

 $path = parse_url($referer, PHP_URL_PATH);
$query = parse_url($referer, PHP_URL_QUERY);
echo "Weg:$path\n";
echo "Abfrageparameter:$query";

Sie können auch die Abfrageparameter weiter analysieren:

 parse_str($query, $queryParams);
print_r($queryParams);

Die Ausgabe kann sein:

 Array
(
    [id] => 123
)

4. Vollständiges Beispiel

Hier ist ein vollständiges Beispiel, um alle Informationen zur Quelladresse des Benutzers zu analysieren und anzuzeigen:

 <?php
$referer = $_SERVER['HTTP_REFERER'] ?? '';

if ($referer) {
    echo "Original Referer: $referer\n\n";

    $urlParts = parse_url($referer);
    echo "Nach der Parsen URL Struktur:\n";
    print_r($urlParts);

    $host = $urlParts['host'] ?? '';
    $path = $urlParts['path'] ?? '';
    $query = $urlParts['query'] ?? '';

    echo "\nQuell Host名:$host\n";
    echo "来源Weg:$path\n";
    echo "Abfrageparameter字符串:$query\n";

    parse_str($query, $queryParams);
    echo "Nach der ParsenAbfrageparameter:\n";
    print_r($queryParams);
} else {
    echo "Keine Quellinformationen(Referer Existiert nicht)";
}
?>

5. Dinge zu beachten

  1. Referer existiert nicht immer : Einige Browser oder Anfordern von Tools senden möglicherweise keinen Referer, oder der Benutzer hat die Funktion für Datenschutzeinstellungen deaktiviert.

  2. Referer kann geschmiedet werden : Verwenden Sie es nicht als einzige Sicherheitsgrundlage.

  3. Problem mit der Cross-Domain-Anfrage : Einige Browser senden möglicherweise keinen Referator vollständig in Cross-Domain-Anfragen.

6. Beispiele für Anwendungsszenarien

  • AD -Tracking : Bestimmt, ob der Benutzer von einem Anzeigenverbift springt.

  • Anti-Diebstahl-Link : Verweisen Sie auf Ablehnung von Ressourcenanfragen, die nicht von dieser Website stammen.

  • Benutzerverhaltensanalyse : Die Datenanalyse wird in Kombination mit der Quelladresse von Protokolldatensätzen durchgeführt.

Abschluss

Durch die Kombination von Parse_url und $ _server ['http_referer'] können wir die Quelladresse des Benutzers problemlos analysieren und einen starken Unterstützung für den Betrieb und die Sicherheit des Website bieten. Denken Sie bei der Verarbeitung von URLs und Benutzerinformationen daran, die Überprüfung und Filterung von Daten immer beizubehalten, um Sicherheitsprobleme zu vermeiden.