Cette petite source montre comment utiliser l'extension fileinfo de PHP afin d'obtenir le type mime d'un fichier.
La source liste les fichiers et répertoires du répertoire choisi et renvoi pour chaque fichier le type mime correspondant. Il affiche la liste ainsi que le nombre de fichiers et répertoires trouvés.
La recherche se fait de façon récursive.
Source / Exemple :
<?php
global $countfile, $countdir;
$countfile = 0;
$countdir = 0;
/*Formulaire*/
function form($directory = '')
{
?>
<form action="index.php?result=verif" method="post">
<p><label for="directory">Répertoire à scanner : </label>
<input type="text" name="directory" maxlength="255" size="50" value="<?php echo $directory; ?>" /></p>
<p><input type="submit" name="ok" value="Vérifier" /></p>
</form>
<?php
}
/*Liste les fichiers/répertoires*/
function listfiles($directory)
{
global $countfile, $countdir;
$finfo = finfo_open(FILEINFO_MIME_TYPE); //Ouvre un flux d'information sur les fichiers
$handle = opendir($directory); //Ouvre le répertoire
while ( false !== ($entry = readdir($handle) ) )
{
//Evite les répertoires . et .. datant du MS-DOS
if ($entry != "." && $entry != "..")
{
echo 'Le fichier <b>'.$entry.'</b> a le type <b><u>'.
finfo_file($finfo, $directory.$entry)."</u></b><br />\n";
//Vérifie si c'est un répertoire
if ( is_dir($directory.$entry) )
{
//Ajoute +1 au nombre de répertoires et procèle à une récursivité
$countdir++;
listfiles($directory.$entry."/");
}
else
{
$countfile++; //Ajoute +1 au nomre de fichiers
}
}
}
closedir($handle); //Ferme le répertoire
}
?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<meta http-equiv="Content-type" content="text/html; charset=UTF-8" />
</head>
<body>
<h1>Affichage du type mime d'un répertoire choisi</h1>
<?php
//Vérifie si on a soumis ou non le formulaire
if ( isset($_GET['result']) and $_GET['result'] === "verif" )
{
$directory = $_POST['directory'];
form($directory);
if ( is_dir($directory) )
{
listfiles($directory."/");
echo '<br />Un total de '.$countfile.' fichiers et '.$countdir.' répertoires ont été trouvés';
}
else
{
?>
<span style="color:red">Le répertoire n'existe pas</span>
<?php
}
}
else
{
form();
}
?>
</body>
</html>
Conclusion :
Rien de très surprenant ici, juste une liste des fichiers trouvés et le type mime correspondant d'après ce que connais PHP.
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.