note 88005 added to function.imagecreatefromgif

From: Date: Mon, 05 Jan 2009 23:11:17 +0000
Subject: note 88005 added to function.imagecreatefromgif
Groups: php.notes 
Request: Send a blank email to php-notes+get-148866@lists.php.net to get a copy of this message
I wrote two alternate versions of ZeBadger's is_ani() function, for determining if a gif file is animated Original: http://us.php.net/manual/en/function.imagecreatefromgif.php#59787 The first alternative version is just as memory intensive as the original, and more CPU intensive, but far simpler: <?php function is_ani($filename) { return (bool)preg_match('#(\x00\x21\xF9\x04.{4}\x00\x2C.*){2,}#s', file_get_contents($filename)); } ?> The second alternative is about as CPU intensive as the original function, but uses less memory (and may also result in less disk activity) <?php function 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 we've 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#s', $chunk, $matches); fclose($fh); return $count > 1; } ?> ---- Server IP: 208.69.120.35 Probable Submitter: 99.4.73.65 ---- Manual Page -- http://www.php.net/manual/en/function.imagecreatefromgif.php Edit -- https://master.php.net/note/edit/88005 Del: integrated -- https://master.php.net/note/delete/88005/integrated Del: useless -- https://master.php.net/note/delete/88005/useless Del: bad code -- https://master.php.net/note/delete/88005/bad+code Del: spam -- https://master.php.net/note/delete/88005/spam Del: non-english -- https://master.php.net/note/delete/88005/non-english Del: in docs -- https://master.php.net/note/delete/88005/in+docs Del: other reasons-- https://master.php.net/note/delete/88005 Reject -- https://master.php.net/note/reject/88005 Search -- https://master.php.net/manage/user-notes.php

« previous php.notes (#148866) next »