PHP-Linux commande pour détecter un Type-Mime

Alors voilà une ligne de commande (sous linux) qui permet de détecter le type MIME d’un fichier.

<?php
$filename="monimage.png";
$type=exec("file -i -b $filename");
echo $type;

//Affiche : image/png
?>

Vous me direz OK c’est simple… mais quel intérêt ?
Et là je vous dis… admettons qu’il y a un répertoire ou vous stockez des fichiers.
Ce répertoire vous ne souhaitez pas que vos visiteurs puissent le parcourir ou accéder à ses fichiers directement.
Alors vous placez un fichier .htaccess dans votre répertoire interdisant à tout le monde d’y accéder.
Contenu du fichier .htaccess :

<Limit GET POST>
deny from all
</Limit>

Ensuite voilà comment notre code d’identification de type MIME va être utile
Pour envoyer un fichier du répertoire inaccessible, nous allons via Apache créer une copie d’un des fichiers à mettre à disposition et l’envoyer au navigateur
Voilà à quoi peut ressembler le code :

<?php
$filename="monimage.png";

//Lecture du contenu du fichier que l'on place dans une variable $content
$fp = fopen ($filename, 'r');
$content = fread($fp, filesize($filename));
fclose ($fp);
				
//Récupération du type de fichier
$type=exec("file -i -b $filename");
				
//Construction des en-têtes du fichier pour que le navigateur comprenne ce qu'on lui envoi (un fichier image)				
header('Content-Type: '.$type);
header('Content-Disposition: inline; filename="'.basename($filename).'"');  

//Affichage du contenu du fichier
echo $content;

Voilà ce genre de code peut un jour être utile alors je vous le laisse 😉

Sinon il y a aussi...