begin process at 2012 05 27 18:18:56
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Astuces

 > RÉCUPÉRER LE TYPE D'UN FICHIER (3 FONCTIONS DIFFÉRENTES)

RÉCUPÉRER LE TYPE D'UN FICHIER (3 FONCTIONS DIFFÉRENTES)


 Information sur la source

Note :
Aucune note
Catégorie :Astuces Classé sous :récupérer, type, fichier, extension, explode Niveau :Débutant Date de création :23/09/2009 Vu / téléchargé :3 543 / 98

Auteur : bad_dark_spirit

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (7)
Ajouter un commentaire et/ou une note


 Description

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

  • <?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));
  • ?>
<?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 :)

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources de la même categorie

AFFICHÉ SUR UN TABLEAU AVEC PAGINATION ET BASE DE DONNÉES par stormxp
Source avec Zip Source avec une capture GENERATEUR D'ONGLET DE NAVIGATION PHP par pos123
FORMATER UN LIEN YOUTUBE, DAILYMOTION OU VIMEO POUR L'UTILIS... par kgb93
Source avec Zip Source avec une capture PAGINATION + FICHIER CSS par profdi
Source avec Zip Source avec une capture SYSTEME D'AUTHENTIFICATION PHP AVEC PROTÉCTION KEYLOGGER par mtrix000

 Sources en rapport avec celle ci

CLASSE DE GESTION DE "VARIABLES GLOBALES D'ENVIRONNEMENT" par pifou25
PARCOURIR UN RÉPERTOIRE ET SES SOUS SOUS SOUS... RÉPERTOIRE ... par micmonay
CONNAITRE SI LE FICHIER UPLOADER N'EST PAS UN FICHIER PHP par amezghal
TYPE DU FICHER par yannvag
TRI PAR TYPE DE FICHIER / EXTENSION par Evangun

Commentaires et avis

Commentaire de willeraser le 23/09/2009 16:44:00

function recupererType2($nom) {
  $ext = substr(strtolower(strrchr(basename($nom), ".")), 1);
  return $ext;
}

function recupererType3($nom) {
  $resultat = pathinfo($nom, PATHINFO_EXTENSION);
  return($resultat);
}


variables intermédiaires, parenthèses inutiles, comme tu dis, codez, mais codez propre :D

Commentaire de Teclis01 le 24/09/2009 10:36:53

C'est très illusoire et incertain de se baser sur le nom et l'extension du fichier...
tu devrais jeter un oeil ici...
http://fr2.php.net/manual/fr/function.finfo-file.php

Commentaire de MaX3315 le 28/09/2009 08:54:30

Comme le dit Teclis01, ce script permet de récupérer l'extension du fichier ET sutout pas son type (mimetype).

C'est la porte ouverte aux attaques!

Commentaire de cyrilvincent le 28/09/2009 08:57:05

Se baser sur le point qui sépare l'extension est très improbable. Sous MAC par exemple l'extension n'est pas obligatoire (seul le nom est utile).
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.

Commentaire de MaX3315 le 28/09/2009 09:09:15

Attention à autre chose encore : $_FILES['nomDuChampFile']['type'] donne le typemine envoyer par le navigateur client... donc par sécurité vaut mieux pas se fier à lui non plus.

Commentaire de cyrilvincent le 28/09/2009 09:12:37

En effet, merci de ta précision.

Commentaire de neigedhiver le 28/09/2009 21:54:15

Salut,

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.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Récupérer le nom d'un fichier... [ par malalam ] Bonjour à tous.Lors d'un upload d'image par FTP, je voudrais récupérer automatiquement le nom (et l'extension) du fichier original, plutôt que d'en cr Récupérer l'extension d'un fichier [ par tahiti_bob ] Bonjour,Est ce que quelqu' un sait comment est ce qu'on fait pour récupérer l' extension d'un fichier ?Merci@++ Tahiti_bob récupérer le nom du fichier chargé sans l'extension [ par lorenzophar ] Bonjour, je voudrais r&#233;cup&#233;rer le nom du fichier de la page charg&#233;e (.php) sans l'extension pour pouvoir l'afficher dans le titre m&#23 Récupérer le chemin d'un fichier à travers un formulaire [ par josserand ] Bonjour &#224; tous !! Je vous explique la situation : J'utilise un formulaire de type "file" (avec son bouton parcourir) pour r&#233;cup&#233;rer l Header Content type [ par xactise ] Bonjours je voudrai savoir si toute les extension de fichier on un content-type ? parce que j'aimerai proposer en upload sur mon site des fichier a l' bug sur move_uploaded_file()... (gros fichiers) [ par Waynejunior ] Bonjour, j'ai apparemment un bug sur un script de move_uploaded_file()... sur de gros fichiers, mon script (voir en dessous) ne marche pas. Il ne fait pb avec le type mime [ par kyript ] Bonjour à tousj'ai un formulaire qui permet d'envoyer un fichier mp3je verifie son type mime afin de ne pas avvoir de pb " if($_FILES['data_extr']['ty problème avec upload [ par 01cod10 ] Bonsoir à tous,je n'arrive toujours pas uploader une photo dans mon répertoire et ma base comme je voulais. je vous présente les scripts que je compte Comment récupérer une bdd dans un fichier xml ? [ par satellite34 ] Bonjour,je me lance dans le d&#233;veloppement d'une application ( c++ (ne fuyez pas!!!!!) ), li&#233; a un site;je m'explique :ce serait une apli de Fonction sur les chaines [ par raven44 ] Bonjour, Je recherche une fonction qui me permettrai de supprimer l'extension d'un fichier quel que soit son extension.Pour le moment j'ai fais ceci :


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,827 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales