Exemple pour expliquer comment demander si une image est convertie en PHP

PHPz
Libérer: 2023-04-11 15:30:27
original
821 Les gens l'ont consulté

Avec le développement d'Internet, la technologie de traitement d'image s'améliore également constamment et il existe plus de choix pour les formats d'image. Parmi eux, les formats d'image courants incluent JPEG, PNG, GIF, etc. Différents formats présentent différents avantages et inconvénients pour différents besoins. En tant que développeur PHP, nous devons souvent traiter des images pendant le processus de développement. L'un des problèmes clés est de savoir comment savoir si l'image est convertie. Cet article partira du point de vue d'un débutant et le combinera avec des cas réels pour présenter comment demander si une image a été convertie.

Tout d’abord, comprenons d’abord ce qu’est la conversion d’image. La conversion d'image fait référence au processus de conversion d'un format d'image en un autre format d'image. Par exemple, nous utilisons des logiciels tels que Photoshop pour convertir des images au format PNG en images au format JPEG. Il n’existe pas qu’une seule façon de réaliser ce processus, et la mise en œuvre spécifique dépend de différents logiciels et exigences.

Ensuite, voyons comment demander si une image est convertie en PHP. En PHP, nous pouvons utiliser la fonction exif_imagetype() pour obtenir le type d'image. Cette fonction peut déterminer une variété de formats d'image courants, notamment JPEG, PNG, GIF, etc. L'utilisation de la fonction est très simple, il suffit de passer le chemin de l'image en paramètre. Par exemple, le code suivant peut obtenir le type d'une image.

$image_type = exif_imagetype('images/test.jpg');
Copier après la connexion

Le type renvoyé par cette fonction n'est pas notre format d'image commun, mais un nombre. La relation correspondante entre les nombres et les formats d'image est comme indiqué dans le tableau suivant :

.
Valeur du type Format d'image
IMAGETYPE_GIF Format GIF
IMAGETYPE_JPEG Format JPEG
IMAGETYPE_PNG Format PNG
IMAGETYPE_BMP Format BMP
IMAGETYPE_WEBP Format WEBP
IMAGETYPE_TIFF_II Format TIFF (Little Endian)
Format ImageType_tiff_mm Format tiff (big endian)
Format ImageType_jb2 jbig2

Après avoir obtenu le type d'image, nous pouvons déterminer si l'image est basée sur nos besoins. Par exemple, si l'on veut déterminer si une image a été convertie au format JPEG, on peut utiliser le code suivant :

$image_type = exif_imagetype('images/test.jpg');

if($image_type == IMAGETYPE_JPEG)
{
    echo '这张图片是JPEG格式的';
}
else
{
    echo '这张图片不是JPEG格式的';
}
Copier après la connexion

A noter que la fonction exif_imagetype() ne détecte que le format de l'image, pas la méthode spécifique de conversion . Par conséquent, dans le développement réel, nous devons choisir différentes méthodes pour demander si l'image est convertie en fonction des besoins réels.

Enfin, regardons un cas pratique. Sur un certain site Web, le format d'image téléchargé par les utilisateurs ne peut être qu'au format PNG. Cependant, lors de mes tests, j’ai constaté que les images téléchargées par certains utilisateurs étaient clairement au format JPEG, mais que le site Web pouvait toujours s’afficher normalement. Pour vérifier si quelqu'un a contourné la limite de téléchargement, je vais demander si ces images ont été converties. J'ai utilisé la fonction exif_imagetype() pour obtenir le format de l'image, et j'ai obtenu les résultats suivants :

图片路径                类型值
--------------------------------
images/test1.jpg    IMAGETYPE_JPEG
images/test2.jpg    IMAGETYPE_JPEG
images/test3.png    IMAGETYPE_PNG
images/test4.png    IMAGETYPE_PNG
Copier après la connexion

On voit que les deux premières images sont évidemment au format JPEG, mais elles sont enregistrées au format PNG. Après mon inspection, j'ai découvert que le site Web utilise un logiciel de conversion d'images pour convertir les images au format JPEG au format PNG afin de contourner les restrictions de téléchargement. En fin de compte, j'ai réussi à découvrir la vulnérabilité en demandant si l'image avait été convertie et j'ai mis en œuvre des mesures de sécurité pour améliorer la sécurité du site Web.

En bref, demander si une image a été convertie en PHP est une question très importante. Nous pouvons utiliser la fonction exif_imagetype() pour obtenir le type d'image et choisir différentes méthodes de vérification en fonction de différents besoins. En particulier en ce qui concerne la sécurité des sites Web, cette question doit être prise plus au sérieux.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal