Aktueller Standort: Startseite> Neueste Artikel> Wie verwendete ich PHPs Parse_url -Funktion in Kombination mit Basisname, um Dateinamen in URLs zu extrahieren?

Wie verwendete ich PHPs Parse_url -Funktion in Kombination mit Basisname, um Dateinamen in URLs zu extrahieren?

gitbox 2025-05-26

In der täglichen Entwicklung müssen wir häufig die URL analysieren, um bestimmte Teile davon zu extrahieren, wie Protokoll, Hostname, Pfad oder Abfrageparameter. In einigen Szenarien kümmern wir uns möglicherweise nur um den "Dateinamen", der im Pfadteil in der URL enthalten ist, z. B. den Bildnamen, den Dokumentnamen usw. in der Ressourcenadresse.

In PHP können wir die integrierte Parse_url -Funktion verwenden, um die URL in verschiedene Teile zu unterteilen und dann die Basisname- Funktion zu kombinieren, um den gewünschten Dateinamen aus dem Pfad zu extrahieren. In diesem Artikel wird erläutert, wie dieser Prozess in Kombination mit Beispielen implementiert wird.

1. Einführung in Parse_url

Parse_url ist eine Funktion, die von PHP zum Parsen von URLs bereitgestellt wird. Es gibt ein assoziatives Array zurück, das die folgenden möglichen Schlüssel enthält:

  • Schema: wie http, https

  • Host: Hostname

  • Port: Portnummer

  • Benutzer: Benutzername

  • Pass: Passwort

  • Pfad: Pfad Teil

  • Abfrage: Abfragezeichenfolge

  • Fragment: Ankerpunkt

Die grundlegende Verwendung ist wie folgt:

 $url = "https://www.gitbox.net/images/photo.jpg?size=large";
$parts = parse_url($url);
print_r($parts);

Das Ausgangsergebnis ist:

 Array
(
    [scheme] => https
    [host] => www.gitbox.net
    [path] => /images/photo.jpg
    [query] => size=large
)

2. Basisname -Funktion extrahiert den Dateinamen

Die Basisname -Funktion von PHP kann den Dateinamen der letzten Ebene aus dem Pfad extrahieren. Zum Beispiel:

 $path = "/images/photo.jpg";
$filename = basename($path); // Das Ergebnis ist "photo.jpg"

3.. Verwenden Sie Parse_url und BaseName in Kombination

Wir können zuerst Parse_url verwenden, um den Pfad in der URL zu extrahieren, und dann den Dateinamen über den Basisname zu erhalten. Hier ist der vollständige Beispielcode:

 function extractFilenameFromUrl($url) {
    $parts = parse_url($url);

    if (!isset($parts['path'])) {
        return null; // Wenn nicht path,Dateiname kann nicht extrahieren
    }

    return basename($parts['path']);
}

// Beispiel
$url = "https://cdn.gitbox.net/assets/docs/manual.pdf?download=true";
$filename = extractFilenameFromUrl($url);
echo "Der extrahierte Dateiname lautet:$filename"; // Ausgabe: Der extrahierte Dateiname lautet:manual.pdf

V.

Manchmal hat die eingehende URL möglicherweise keinen Dateinamen angegeben, wie z. B.: