手机网站的网址是什么原因,网站百度收录删除,南平 网站建设,wordpress防止爆破在imagecreatefromgif()函数的PHP手册页中有一个简短的代码片段#xff0c;应该是你所需要的#xff1a;由ZeBadger提供的图片评论#xff03;59787在search同样问题的解决scheme时#xff0c;我注意到php.net网站对Davide和Kris所指代码的后续操作#xff0c;但根据作者的…在imagecreatefromgif()函数的PHP手册页中有一个简短的代码片段应该是你所需要的由ZeBadger提供的图片评论59787在search同样问题的解决scheme时我注意到php.net网站对Davide和Kris所指代码的后续操作但根据作者的说法内存密集程度更低可能更less的磁盘密集。我会在这里复制它因为它可能是有趣的。来源 http //www.php.net/manual/en/function.imagecreatefromgif.php#88005function is_ani($filename) { if(!($fh fopen($filename, rb))) return false; $count 0; //an animated gif contains multiple frames, with each frame having a //header made up of: // * a static 4-byte sequence (\x00\x21\xF9\x04) // * 4 variable bytes // * a static 2-byte sequence (\x00\x2C) // We read through the file til we reach the end of the file, or weve found // at least 2 frame headers while(!feof($fh) $count 2) { $chunk fread($fh, 1024 * 100); //read 100kb at a time $count preg_match_all(#\x00\x21\xF9\x04.{4}\x00[\x2C\x21]#s, $chunk, $matches); } fclose($fh); return $count 1; }这是工作function/** * Thanks to ZeBadger for original example, and Davide Gualano for pointing me to it * Original at http://it.php.net/manual/en/function.imagecreatefromgif.php#59787 **/ function is_animated_gif( $filename ) { $raw file_get_contents( $filename ); $offset 0; $frames 0; while ($frames 2) { $where1 strpos($raw, \x00\x21\xF9\x04, $offset); if ( $where1 false ) { break; } else { $offset $where1 1; $where2 strpos( $raw, \x00\x2C, $offset ); if ( $where2 false ) { break; } else { if ( $where1 8 $where2 ) { $frames ; } $offset $where2 1; } } } return $frames 1; }如果给定的文件太大用file_get_contents读取整个文件可能会花费太多的内存。 我已经重新考虑了以前给出的函数它只读取了足够的字节来检查帧并且一find至less2帧就返回。?php /** * Detects animated GIF from given file pointer resource or filename. * * param resource|string $file File pointer resource or filename * return bool */ function is_animated_gif($file) { $fp null; if (is_string($file)) { $fp fopen($file, rb); } else { $fp $file; /* Make sure that we are at the beginning of the file */ fseek($fp, 0); } if (fread($fp, 3) ! GIF) { fclose($fp); return false; } $frames 0; while (!feof($fp) $frames 2) { if (fread($fp, 1) \x00) { /* Some of the animated GIFs do not contain graphic control extension (starts with 21 f9) */ if (fread($fp, 1) \x2c || fread($fp, 2) \x21\xf9) { $frames; } } } fclose($fp); return $frames 1; }animationGIF必须具有以下string\x21\xFF\x0B\x4E\x45\x54\x53\x43\x41\x50\x45\x32\x2E\x30