检查上传图片是否是gif动画,目的一般二个。一是确定是图片文件,二是确定是gif.经常遇到有人上传.gif的木马文件(把木马脚本改一下扩展名.php 改成 .gif)上传。 通过以下代码可以实现以上二个目的。
首先,gif动画是gif89格式的,发现文件开头是gif89。但是很多透明图片也是用的gif89格式,GOOGLE到的:可以检查文件中是否包含:chr(0×21).chr(0xff).chr(0×0b).\'NETSCAPE2.0\'.chr(0×21).chr(0xff) 是gif图片中扩展功能段的标头,\'NETSCAPE2.0\'是扩展功能执行的程序名
程序代码如下:
<?php
function check_gif($image)
{
$content= file_get_contents($image);
if(preg_match(\"/\".chr(0x21).chr(0xff).chr(0x0b).\'NETSCAPE2.0\'.\"/\",$content)){
return true;
}else{
return false;
} }
if(check_gif(\'/路径/2.gif\')){
echo\'真是动画\';
}else{
echo\'不是动画\';//或者是木马文件。
} ?>