Fileinfo - type mime

Contenu du snippet

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.

A voir également

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.