There is a short code snippet on the php manual page of the imagecreatefromgif () functions, which should be what you need:
<?php function is_ani($filename) { $filecontents=file_get_contents($filename); $str_loc=0; $count=0; while ($count < 2) # There is no point in continuing after we find a 2nd frame { $where1=strpos($filecontents,"\x00\x21\xF9\x04",$str_loc); if ($where1 === FALSE) { break; } else { $str_loc=$where1+1; $where2=strpos($filecontents,"\x00\x2C",$str_loc); if ($where2 === FALSE) { break; } else { if ($where1+8 == $where2) { $count++; } $str_loc=$where2+1; } } } if ($count > 1) { return(true); } else { return(false); } } exec("ls *gif" ,$allfiles); foreach ($allfiles as $thisfile) { if (is_ani($thisfile)) { echo "$thisfile is animated<BR>\n"; } else { echo "$thisfile is NOT animated<BR>\n"; } } ?>
It could be easily changed to count the number of frames if you need to.
See here
source share