code: public static function isAnimatedGif($fileName)
      {
          if (($fh = fopen($fileName, 'rb')) === false) {
              throw new \RuntimeException('Can\'t open ' . $fileName, 1454678600);
          }
          $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\x21]#s', $chunk, $matches);
          }
  
          fclose($fh);
          return $count > 1;
      }
docs: Returns true if the given GIF file is animated.
  
  @param string $fileName
  @return bool