Bonjour à tous,
La plupart des gens pense que récupérer l'extension d'un fichier envoyé par formulaire (par exemple) est difficile à récupérer... Et vous ?
Je vous propose ici 3 fonctions différentes permettant de récupérer cette extension. Choisissez celle qui vous convient le mieux.
Source / Exemple :
<?php
/*
----------------------------------------------------------------------
1ère méthode : l'utilisation de la fonction PHP explode :
----------------------------------------------------------------------
function recupererType1($nom) {
$morceau = explode('.', $nom);
$longeur = sizeOf($morceau);
return($morceau[$longeur-1]);
}
/*
----------------------------------------------------------------------
2ème méthode : l'utilisation des fonctions substr et strrchr
----------------------------------------------------------------------
function recupererType2($nom) {
$ext = substr(strtolower(strrchr(basename($nom), ".")), 1);
return $ext;
}
/*
----------------------------------------------------------------------
3ème méthode : l'utilisation de la fonction pathinfo
----------------------------------------------------------------------
function recupererType3($nom) {
$resultat = pathinfo($nom, PATHINFO_EXTENSION);
return($resultat);
}
/*
----------------------------------------------------------------------
Le code suivant teste les fonctions ci-dessus
----------------------------------------------------------------------
$nomFichier = 'bonjour.php';
echo('Le nom du fichier est : <b>'.$nomFichier.'</b> testons nos trois fonctions : <br />');
echo('<br />recupererType1 renvoie : '.recupererType1($nomFichier));
echo('<br />recupererType2 renvoie : '.recupererType2($nomFichier));
echo('<br />recupererType3 renvoie : '.recupererType3($nomFichier));
?>
Conclusion :
Codez, mais codez propre :)
28 sept. 2009 à 21:54
Pis se baser sur le point pour certains fichers cachés, c'est complètement vain : par exemple .htaccess On trouvera comme extension "htaccess" alors que c'est faux : il n'y a pas d'extension, le fichier s'appelle "htaccess" et il est caché, donc il commence par un point.
Idem avec pathinfo() et l'option PATHINFO_EXTENSION.
Finalement, toutes ces fonctions font toutes la même chose de la même manière. J'ai pas encore trouvé mieux qu'une expression régulière pour choper l'extension d'un fichier à coup sûr.
28 sept. 2009 à 09:12
28 sept. 2009 à 09:09
28 sept. 2009 à 08:57
En outre la plus part du temps, vous avez besoin de connaitre l'extension lors d'un upload, et dans ce cas la fonction $_FILES['nomDuChampFile']['type'] vous donne les caractéristiques du fichier même sans extension dans le nom du fichier (on parle ici le type mime de l'objet).
Merci de le préciser dans vos remarques.
28 sept. 2009 à 08:54
C'est la porte ouverte aux attaques!
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.