Aller au contenu

Souci fonction perso pour récupérer mime-type


dexmon

Sujets conseillés

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 3
application/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é par dexmon
Lien vers le commentaire
Partager sur d’autres sites

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

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é par dexmon
Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...