Example
The code is as follows |
|
/* * Determine whether the picture is a dynamic picture (animation) */ function Isanimatedgif ($filename) { $FP =fopen ($filename, ' RB '); $filecontent =fread ($fp, FileSize ($filename)); Fclose ($FP); Return Strpos ($filecontent, Chr (0x21). chr (0xff). chr (0x0b). ' NETSCAPE2.0 ') ===false?0:1; } |
Or do it.
Use PHP to determine if a GIF picture is animated (multiple frames)
The code is as follows |
|
<?php function Isanimatedgif ($filename) { $fp = fopen ($filename, ' RB '); $filecontent = Fread ($fp, FileSize ($filename)); Fclose ($FP); Return Strpos ($filecontent, Chr (0x21). chr (0xff). chr (0x0b). ' NETSCAPE2.0 ') = = = False?0:1; } Echo isanimatedgif ("51windows.gif"); ?> |
Example 2
GIF animations are gif89 formatted and find gif89 at the beginning of the file. But a lot of transparent pictures are also used in gif89 format,
Google to: You can check whether the file contains: Chr (0x21). chr (0xff). chr (0x0b). ' NETSCAPE2.0 '
Chr (0x21). Chr (0xff) is the header of an extended feature segment in a GIF image, and ' NETSCAPE2.0 ' is the name of the program that extends the function execution
The program code is as follows:
The code is as follows |
|
<?php function Check ($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 ('/home/lyy/luoyinyou/2.gif ')) { Echo ' really animation '; }else{ Echo ' is not animated '; } ?> |
The test found that it was sufficient to read 1024 bytes because the stream of data being read contains exactly the Chr (0x21). chr (0xff). chr (0x0b). ' NETSCAPE2.0 '