dexmon Posté 9 Octobre 2008 Partager Posté 9 Octobre 2008 (modifié) Bonjour, j'essai de créer une fonction pour récupérer le mime-type de n'importe quel fichier avec 2 arguments, le fichier et le chemin vers le fichier de la base fileinfo (/usr/share/misc/magic) sur bsd, il marche parfaitement. Mais je me heurte au problème de vouloir inclure le chemin par défaut si le 2ème argument est omis: Voici le code: <?php /* Retourne le mime-type de n'importe quel fichier */ function get_mime_type($filename, $fichier_magic) { if(!$fichier_magic) { $fichier_magic = '/usr/share/misc/magic'; } $finfo = finfo_open(FILEINFO_MIME, $fichier_magic); // Retourne le type mime if(file_exists($filename)) { if ($finfo) { /* Récupère le mime-type d'un fichier spécifique */ $infos = finfo_file($finfo, $filename); } else { return FALSE; } } else { return FALSE; } /* Fermeture de la connexion */ finfo_close($finfo); return $infos; } echo get_mime_type('BigMisterC.ttf'); ?> Donc ici je n'inclus pas le 2ème arguement et me retourne une erreur comme quoi le 2ème argument n'est pas indiqué, donc comment faire pour qu'il me retourne le mime-type avec le second argument par défaut si rien n'est indiqué. Donc dans cet echo j'ai omis exprès le second argument pour tester et voici: Warning: Missing argument 2 for get_mime_type(), called in /usr/local/www/data/host/domaine.com/test/essai.php on line 60 and defined in /usr/local/www/data/host/domaine.com/test/essai.php on line 3application/octet-stream Je pourrais placer un arobase devant la fonction mais c pas très propre en production. Le but de la manoeuvre est d'utiliser cette fonction sur un système comme Windows dont le chemin de la base magic.mime n'est pas identique à bsd. D'avance merci à tous. Modifié 9 Octobre 2008 par dexmon Lien vers le commentaire Partager sur d’autres sites More sharing options...
Dan Posté 9 Octobre 2008 Partager Posté 9 Octobre 2008 Je définirais la fonction comme ceci : function get_mime_type($filename, $fichier_magic="/usr/share/misc/magic") ce qui te permettrait de virer les lignes suivantes, vu que la valeur par défaut de fichier_magic serait justement /usr/share/misc/magin. if(!$fichier_magic) { $fichier_magic = '/usr/share/misc/magic'; } Extrait du manuel de php:Use of default parameters in functions <?php function makecoffee($type = "cappuccino") { return "Making a cup of $type.\n"; } echo makecoffee(); echo makecoffee(null); echo makecoffee("espresso"); ?> The output from the above snippet is: Making a cup of cappuccino. Making a cup of . Making a cup of espresso. Lien vers le commentaire Partager sur d’autres sites More sharing options...
dexmon Posté 9 Octobre 2008 Auteur Partager Posté 9 Octobre 2008 (modifié) Merci ça marche <?php /* Retourne le mime-type de n'importe quel fichier */ function get_mime_type($filename, $file_magic = null) { if(is_null($file_magic)) { $file_magic = '/usr/share/misc/magic'; } $finfo = finfo_open(FILEINFO_MIME, $file_magic); // Retourne le type mime if(file_exists($filename)) { if ($finfo) { /* Récupère le mime-type d'un fichier spécifique */ $infos = finfo_file($finfo, $filename); } else { return FALSE; } } else { return FALSE; } /* Fermeture de la connexion */ finfo_close($finfo); return $infos; } echo get_mime_type('BigMisterC.ttf'); ?> Modifié 9 Octobre 2008 par dexmon Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant