php判斷GIF圖片是否為動(dòng)畫(huà)的方法
本文介紹了PHP判斷GIF圖片是動(dòng)畫(huà)的方法,具體步驟如下:
首先,gif動(dòng)畫(huà)是gif89格式的,發(fā)現(xiàn)文件開(kāi)頭是gif89。但是很多透明圖片也是用的gif89格式,
GOOGLE到的:可以檢查文件中是否包含:chr(0×21).chr(0xff).chr(0×0b).'NETSCAPE2.0'
chr(0×21).chr(0xff) 是gif圖片中擴(kuò)展功能段的標(biāo)頭,'NETSCAPE2.0'是擴(kuò)展功能執(zhí)行的程序名
程序代碼如下:
<?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'真是動(dòng)畫(huà)'; }else{ echo'不是動(dòng)畫(huà)'; } ?>
這段代碼還是可以再優(yōu)化的:
因?yàn)閷?shí)際上 chr(0×21).chr(0xff).chr(0×0b).'NETSCAPE2.0' 只在文件頭部出現(xiàn),可以 echo 來(lái)看看 ,但不是最頭部,是在頭部的某一個(gè)位置,所以,嚴(yán)格來(lái)說(shuō)需要讀取一部分文件,但不用全部,這樣可以加快速度和節(jié)省內(nèi)存。
程序可改寫(xiě)如下:
function check_animation($image_file){ $fp = fopen($image_file, 'rb'); $image_head = fread($fp,1024); fclose($fp); return preg_match("/".chr(0x21).chr(0xff).chr(0x0b).'NETSCAPE2.0'."/",$image_head) ? true : false; }
測(cè)試發(fā)現(xiàn),讀取1024字節(jié)足夠了,因?yàn)榇藭r(shí)讀取的數(shù)據(jù)流中正好包含了 chr(0×21).chr(0xff).chr(0×0b).'NETSCAPE2.0'
其他網(wǎng)友的補(bǔ)充
<?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"); ?>
到此這篇關(guān)于php判斷GIF圖片是否為動(dòng)畫(huà)的方法的文章就介紹到這了,更多相關(guān)php判斷GIF圖片是否為動(dòng)畫(huà)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- php通過(guò)獲取頭信息判斷圖片類(lèi)型的方法
- PHP判斷一個(gè)gif圖片是否為動(dòng)態(tài)圖片的方法
- PHP判斷文章里是否有圖片的簡(jiǎn)單方法
- PHP判斷遠(yuǎn)程圖片是否存在的幾種方法
- PHP判斷遠(yuǎn)程圖片或文件是否存在的實(shí)現(xiàn)代碼
- PHP判斷圖片格式的七種方法小結(jié)
- php判斷上傳的Excel文件中是否有圖片及PHPExcel庫(kù)認(rèn)識(shí)
- php ajax無(wú)刷新上傳圖片實(shí)例代碼
- 兩種php實(shí)現(xiàn)圖片上傳的方法
- PHP上傳圖片時(shí)判斷上傳文件是否為可用圖片的方法
相關(guān)文章
PHP+jquery+ajax實(shí)現(xiàn)即時(shí)聊天功能實(shí)例
這篇文章主要介紹了PHP+jquery+ajax實(shí)現(xiàn)即時(shí)聊天功能的方法,實(shí)例分析了php聊天功能的信息無(wú)刷新提交方法,以及信息發(fā)送處理等功能,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2014-12-12PHP網(wǎng)站安裝程序制作的原理、步驟、注意事項(xiàng)和示例代碼
其實(shí)PHP程序的安裝原理無(wú)非就是將數(shù)據(jù)庫(kù)結(jié)構(gòu)和內(nèi)容導(dǎo)入到相應(yīng)的數(shù)據(jù)庫(kù)中,從這個(gè)過(guò)程中重新配置連接數(shù)據(jù)庫(kù)的參數(shù)和文件,為了保證不被別人惡意使用安裝文件,當(dāng)安裝完成后需要修改安裝文件。2010-08-08深入解析PHP中逗號(hào)與點(diǎn)號(hào)的區(qū)別
大部分同學(xué)都知道逗號(hào)要比點(diǎn)號(hào)快,但就是不知道為什么,更不知道逗號(hào)與點(diǎn)號(hào)這兩者之間到底有什么區(qū)別。下面小編就來(lái)詳細(xì)的為大家介紹一下,需要的朋友可以過(guò)來(lái)參考下2013-08-08PHP curl_setopt()函數(shù)實(shí)例代碼與參數(shù)分析
curl_setopt()函數(shù)將為一個(gè)CURL會(huì)話設(shè)置選項(xiàng)。option參數(shù)是你想要的設(shè)置,value是這個(gè)選項(xiàng)給定的值。2011-06-06php出現(xiàn)web系統(tǒng)多域名登錄失敗的解決方法
這篇文章主要介紹了php出現(xiàn)web系統(tǒng)多域名登錄失敗的解決方法,針對(duì)同一頂級(jí)域名下的各子站出現(xiàn)登錄失敗的情況非常有用,需要的朋友可以參考下2014-09-09PHP的數(shù)組中提高元素查找與元素去重的效率的技巧解析
這篇文章主要介紹了PHP的數(shù)組中提高元素查找與元素去重的效率的技巧解析,文中對(duì)比了相關(guān)方法的執(zhí)行速度來(lái)總結(jié)數(shù)組中使元素查找和去重更加高效的辦法,需要的朋友可以參考下2016-03-03php函數(shù)傳值的引用傳遞注意事項(xiàng)分析
這篇文章主要介紹了php函數(shù)傳值的引用傳遞注意事項(xiàng),涉及php配置文件的設(shè)置及數(shù)組函數(shù)的使用技巧,需要的朋友可以參考下2016-06-06