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');
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格式的'; }
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
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!