Position actuelle: Accueil> Derniers articles> Utilisez Parse_Url et Basen Name pour obtenir un nom de fichier

Utilisez Parse_Url et Basen Name pour obtenir un nom de fichier

gitbox 2025-05-26

Dans le développement quotidien, nous devons souvent analyser l'URL pour en extraire des parties spécifiques, telles que le protocole, le nom d'hôte, le chemin ou les paramètres de requête. Dans certains scénarios, nous ne pouvons nous soucier que du "nom de fichier" contenu dans la partie Chemin de l'URL, tel que le nom de l'image, le nom du document, etc. dans l'adresse de la ressource.

Dans PHP, nous pouvons utiliser la fonction PARSE_URL intégrée pour diviser l'URL en différentes parties, puis combiner la fonction de nom de base pour extraire le nom de fichier que nous voulons du chemin. Cet article expliquera comment implémenter ce processus en combinaison avec des exemples.

1. Introduction à parse_url

PARSE_URL est une fonction fournie par PHP pour l'analyse des URL. Il renvoie un tableau associatif contenant les clés possibles suivantes:

  • Schéma: comme HTTP, HTTPS

  • Hôte: nom d'hôte

  • Port: numéro de port

  • Utilisateur: nom d'utilisateur

  • passer: mot de passe

  • Chemin: Partie de chemin

  • requête: chaîne de requête

  • Fragment: point d'ancrage

L'utilisation de base est la suivante:

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

Le résultat de la sortie est:

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

2. Fonction du nom de base extrait le nom du fichier

La fonction de nom de base de PHP peut extraire le nom de fichier de dernier niveau du chemin. Par exemple:

 $path = "/images/photo.jpg";
$filename = basename($path); // Le résultat est "photo.jpg"

3. Utilisez Parse_Url et Basen Name en combinaison

Nous pouvons d'abord utiliser PARSE_URL pour extraire le chemin d'accès dans l'URL, puis obtenir le nom de fichier via Basen Name . Voici l'exemple de code complet:

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

    if (!isset($parts['path'])) {
        return null; // Sinon path,Impossible d'extraire le nom de fichier
    }

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

// Exemple
$url = "https://cdn.gitbox.net/assets/docs/manual.pdf?download=true";
$filename = extractFilenameFromUrl($url);
echo "Le nom de fichier extrait est:$filename"; // Sortir: Le nom de fichier extrait est:manual.pdf

4. Gérer les situations où il n'y a pas de nom de fichier ou le chemin est vide

Parfois, l'URL entrante peut ne pas avoir un nom de fichier spécifié, tel que: