PHP如何判断一个gif图片是否为动画?

首先想到的是用getimagesize()看看type,发现都是gif。

然后想gif动画是gif89格式的,发现文件开头是gif89,但是很多透明图片也是用的gif89格式。

看来必须分析文件的祯了。baidu了一下,发现phpx.com有解决过了。

叨唠的说明:

检查文件中是否包含

chr(0×21).chr(0xff).chr(0×0b).‘NETSCAPE2.0‘

chr(0×21).chr(0xff)    是gif图片中扩展功能段的标头

‘NETSCAPE2.0‘     是扩展功能执行的程序名

最后整理一个函数:

/*
 * 判断图片是否为动态
 */
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;
}
时间: 2024-08-01 15:17:04

PHP如何判断一个gif图片是否为动画?的相关文章

判断一个图片是不是伪造的方法

有时候我们闲着无聊可能把.txt文本改成.jpg或.png.但是我们开发的时候可能读取都是按后缀名读取的,也许就可能把这一张伪造的图片也读了出来,可能给我们队开发造成一定的损害.那么我们怎么判断一个图片是真的图片还是假图片那:下面是方法: public static void main(String[] args) throws IOException { File file=new File("C:/Documents and Settings/Administrator/桌面/aa.png&

判断一个字符串里是否含有某段字符?怎么截取一段字符?

写前端过程中遇到的最多的字符串操作莫过于 :判断一个字符串里是否含有某段字符 ,和 截取一段字符串. 字符串操作有很多方法,其实一般只要掌握以上两个就够用了,其他方法随他去吧,好,下面就以上两个方法讲解一下. 1.判断一个字符串是否含有某段字符,使用indexOf()方法: str.indexOf("参数1","参数2");参数1表示判断是否包含的小字符串, 参数2表示从左到有依次判断的起始位置,默认从0开始,str表示用于寻找的原字符串,ps:如果原字符串含多个判

oracle中如何判断一个字符串是否含有汉字

oracle中如何判断一个字符串是否含有汉字 一.1 BLOG文档结构图 一.2 前言部分 一.2.1 导读 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ①全角字符的判断,或者是含有汉字的字符串的判断 本文如有错误或不完善的地方请大家多多指正,ITPUB留言或QQ皆可,您的批评指正是我写作的最大动力. 一.2.2 实验环境介绍 11.2.0.3  RHEL6.5 一.2.3 本文简介 看到网友问,怎么查询表中某个字段数据是不是包含了

(hdu step 4.2.7)逃离迷宫(在有转弯次数的限制的情况下,判断一个点是否能到另一个点)

题目: 逃离迷宫 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 264 Accepted Submission(s): 85   Problem Description 给定一个m × n (m行, n列)的迷宫,迷宫中有两个位置,gloria想从迷宫的一个位置走到另外一个位置,当然迷宫中有些地方是空地,gloria可以穿越,有些地方是障碍

分支结构判断一个月几天

int month = 0; scanf("%d",&month); switch (month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: printf("%d月 31 天",month); break; case 4: case 6: case 9: case 11: printf("%d 月30天",month); break; case 2: print

Java中如何判断一个double类型的数据为0?

Java中如何判断一个double类型的数据为0 其实这个问题很简单,只是很多时候考虑复杂了,直接用==判断即可.下面给出测试例子: /**  * 如何判断一个double类型的数据为0  *  * @author leizhimin 2014/8/27 10:31  */ public class Test4 {     public static void main(String[] args) {         double x = 0.00000000000000000;       

如何判断一个APP页面是原生的还是H5页面

来源:http://www.25xt.com/appdesign/11851.html Hybrid APP指的是半原生半Web的混合类App.需要下载安装,看上去类似Native App,但只有很少的UI Web View,访问的内容是 Web . 原生是Native APP,H5就是Web App 在Hybrid 当中,如何快速的判断一个APP页面是原生的还是H5页面呢? 1.看断网的情况 把手机的网络断掉.然后点开页面.然后可以正常显示的东西就是原生写的. 显示404或则错误页面的是htm

怎样判断一个网站或域名被K过

域名是用户对网站的第一印象,域名的选择对于一个网站来说至关重要,选择容易让用户记忆,提高回头率的域名那就不说了,大家都知道.但是我们也要判断这个域名是否被被搜索引擎k过,因为一个域名被K后,重新作战很有可能长期得不到搜索引擎有效的收录.因为域名已经做过弊,被降权,被K,那你以后在怎么努力估计也很难得到搜索引擎的认可了,所以这方面的工作是必须要做的.下面介绍一些详细的方法,帮助大家判断一个域名是否被k过或者被使用过. 1:首先,到域名查询中心阿里云或万网去查询网站的whois信息,现在很多域名或空

js 判断一个文本框是否获得焦点

1.js 判断一个文本框是否获得焦点 // 可以用document.activeElement判断 // document.activeElement表示当前活动的元素 // 查找你要判断的文本框 var myInput = document.getElementById('myInput'); if (myInput == document.activeElement) {     alert('获取焦点'); } else {     alert('未获取焦点'); } 2.文本框获取焦点后