本篇文章為大家展示了php中怎么判斷GIF圖片是否為動(dòng)畫(huà),內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。
我們提供的服務(wù)有:成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、微信公眾號(hào)開(kāi)發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、天祝藏族自治ssl等。為千余家企事業(yè)單位解決了網(wǎng)站和推廣的問(wèn)題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的天祝藏族自治網(wǎng)站制作公司首先,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"); ?>
上述內(nèi)容就是php中怎么判斷GIF圖片是否為動(dòng)畫(huà),你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
文章標(biāo)題:php中怎么判斷GIF圖片是否為動(dòng)畫(huà)-創(chuàng)新互聯(lián)
當(dāng)前路徑:http://bm7419.com/article2/didiic.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號(hào)、企業(yè)建站、網(wǎng)站設(shè)計(jì)、響應(yīng)式網(wǎng)站、網(wǎng)站改版、企業(yè)網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容