介绍了一种用PHP判断GIF动画图像的方法。以下步骤如下:

首先,GIF动画在gif89的格式和文件的开头是gif89。但许多透明的照片也用在gif89的格式。

谷歌:你可以检查文件是否包含:Chr(0×21)。Chr(0xFF)。Chr(0×0B)'netscape2.0。

CHR(0×21)。Chr(0xFF)是扩展功能段的GIF图片的标题,and'netscape2.0'is的功能扩展程序名称。

程序代码如下所示:


< PHP
函数检查($ Image){
$content = file_get_contents($图像);
如果( / ( / ( / 。Chr(0x21)。Chr(0xFF)。Chr(0x0b)'netscape2.0。
返回true;
其他{ }
返回false;
}
}
如果(检查( / / /我的家luoyinyou / 2。gif)){
真的echo'is动画;
其他{ }
echo'is不是动画;
}
>




代码可以重新优化。

由于CHR(0×21)。Chr(0xFF)。Chr(0×0B)。'netscape2.0'only出现在标题,回声可以看到,但不是头,在头部的位置,所以严格来说,需要读取文件的一部分,但不是全部,以速度和节省内存。

程序可以重写如下:


功能check_animation($ image_file){
$ FP = fopen(image_file美元,'rb);
image_head美元= fread($ FP,1024);
Fclose($ FP);
返回preg_match( / 。Chr(0x21)。Chr(0xFF)。Chr(0x0b)'netscape2.0。
}




测试发现,读取1024字节足以因为读数据流包括CHR(0×21)。Chr(0xFF)。Chr(0×0B)。'netscape2.0'in此时读数据流。