Snippet #11 ~ PHP récuperer une extension quelle que soit le nombre de points

Le micro snippet du mec qui n’as pas le temps :), c’est vrai que pour ça elle est pratique cette rubrique snippet 😀 !!

Voici donc une astuce toute bête mais aussi un moyen sûre  à 100% de récupérer l’extension d’un fichier si il en possède un :

function getExtension($fileName){
		$dot = explode('.',$fileName);
		return (count($dot)>1?strtolower($dot[count($dot)-1]):false);
}

La méthode return false si le fichier ne comporte aucune extension.

8 réactions au sujet de « Snippet #11 ~ PHP récuperer une extension quelle que soit le nombre de points »

    • Idleman Auteur ArticleRéponse

      Si, mais c’est dépendant d’un chemin physique de fichier, dans le cas d’un système de fichiers virtualisé qui dépend intégralement d’une base de données par exemple, pathinfo est inutilisable, de plus la fonction pathinfo() est sensible à la configuration locale.

      Mais bon je tchaoupine la :), faut bien que je défende mes ptits bouts de snippets 😀

    • Idleman Auteur ArticleRéponse

      Ha la t’es dur ^^, et tu connais très bien la réponse 🙂 . En même temps il fait chier ce format à faire son cas particulier :p

  1. JeromeJ Réponse

    Salut, si on a accès au fichier (lors d’un upload par exemple),

    Il vaut mieux éviter de se baser sur le nom du fichier. Voici le truc pour “vraiment” analyser le fichier:

    in_array(finfo_file(finfo_open(FILEINFO_MIME_TYPE), $file_path), array(‘image/jpeg’, ‘image/jpg’, ‘image/png’))

    Dans ce cas-ci c’est pour vérifier si le fichier situé à l’emplacement $file_path est bien une image 😉

  2. Idleman Auteur ArticleRéponse

    Lorsqu’on à accès au fichier, on peut directement utiliser l’option que sebSauvage à proposé, a savoir

    pathinfo($uri,PATHINFO_EXTENSION);

    Dans le cas d’un SFV seul le nom peut servir de référence 🙂

  3. JeromeJ Réponse

    Un SFV ?

    Oui mais cette solution ne vérifie pas vraiment le type du fichier, si ?
    C’est justement ce que je lui reproche si c’est le cas. Elle se base sur le nom du fichier et je peux très bien t’envoyer un exécutable en le renommant en chaton.jpeg 😉

    • Idleman Auteur ArticleRéponse

      Un système de fichiers virtualisé, à savoir que la hiérarchie de l’arborescence n’est pas physique mais stockée en base de données, ceci offre de nombreux avantages mais il en resulte un inconvénient c’est qu’il faut un traitement avant de pouvoir reconstituer le chemin physique du fichier.

      Tu as totalement raison ça ne vérifie pas le type du fichier, il s’agit plus d’une rustine dans le cas ou la vérification du type du fichier soit impossible.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.