dexmon Posté 9 Octobre 2008 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
Dan Posté 9 Octobre 2008 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.
dexmon Posté 9 Octobre 2008 Auteur 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
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant