Lors du traitement des images en PHP, nous devons souvent obtenir le type MIME de l'image afin de définir le type de contenu approprié dans la réponse ou d'effectuer un traitement ultérieur. image_type_to_mime_type () et exif_imagetype () sont deux fonctions couramment utilisées. Ils peuvent tous deux nous aider à obtenir des informations sur le type d'image. Cependant, les deux ont des scénarios d'utilisation différents, et les utiliser ensemble peut effectuer des tâches plus efficacement.
Image_type_to_mime_type () est une fonction qui convertit les constantes de type d'image (telles que ImageType_jpeg , ImageType_png ) en type MIME. Son prototype de fonction est le suivant:
string image_type_to_mime_type(int $imagetype);
$ ImageType : une constante de type d'image, qui peut généralement être obtenue via exif_imagetype () ou d'autres fonctions liées à l'image.
Valeur de retour: une chaîne de type MIME (par exemple "image / jpeg", "image / png").
exif_imageType () est une fonction qui détecte les types d'images. Il renvoie la constante de type d'image, qui peut être utilisée pour obtenir davantage le type MIME. Le prototype de fonction est le suivant:
int exif_imagetype(string $filename);
$ nom de fichier : le chemin du fichier image.
Valeur de retour: Type d'image Constante (comme IMAMETYPE_JPEG , IMAMETYPE_PNG , etc.), si le type d'image ne peut pas être reconnu, il reviendra faux .
Supposons que nous devons traiter un fichier image téléchargé, déterminer d'abord s'il s'agit d'un fichier image valide et obtenir son type MIME. Dans ce cas, nous pouvons utiliser eXif_imageType () et image_type_to_mime_type () en combinaison.
<?php
// Supposons que nous ayons obtenu le chemin d'accès pour télécharger le fichier
$file = 'uploads/sample.jpg';
// utiliser exif_imagetype() Obtenez des constantes de type d'image
$imageType = exif_imagetype($file);
// Vérifiez si le type d'image est légal
if ($imageType !== false) {
// utiliser image_type_to_mime_type() Obtenez l'image MIME taper
$mimeType = image_type_to_mime_type($imageType);
// Image de sortie MIME taper
echo "Déposé MIME taper是: " . $mimeType;
} else {
echo "无法识别该Déposé图像taper。";
}
?>
Obtenez le type d'image : nous utilisons la fonction exif_imageType () pour obtenir la constante de type de l'image. Cette fonction déterminera le type d'image basé sur le contenu du fichier, tel que ImageType_JPEG , ImageType_png , etc. Si le fichier n'est pas une image valide, il renvoie faux .
Convertir en type MIME : Une fois que nous avons la constante de type de l'image (comme ImageType_JPEG ), nous pouvons le convertir en type MIME via la fonction image_type_to_mime_type () . Ceci est très utile pour configurer l'en-tête de réponse ou le traitement des fichiers d'image.
Traitement des images non valides : Si exif_imageType () renvoie false , cela signifie que le fichier ne peut pas être reconnu comme une image valide et nous publions un message d'erreur.
Dans le développement réel, lors du traitement des fichiers de téléchargement, nous devons souvent vérifier le type de fichier pour garantir que l'utilisateur télécharge un fichier image légitime. Si vous ne comptez que sur des extensions de dossier pour le jugement, les problèmes de sécurité sont susceptibles de se produire. En combinant exif_imageType () et image_type_to_mime_type () , nous pouvons déterminer plus précisément le type de fichier image pour empêcher les téléchargements de fichiers malveillants.
Si votre traitement d'image implique une URL externe et doit vérifier le type de l'image, nous pouvons d'abord obtenir le contenu de fichier correspondant à l'URL, puis faire des jugements de type. Par exemple, supposons que nous devons obtenir le type d'image sur une certaine URL, nous pouvons obtenir le contenu de l'image via file_get_contents () , puis utiliser les deux fonctions ci-dessus pour la traiter.
Voici un exemple simplifié montrant comment traiter les images à partir d'URL distantes: