欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

php判斷GIF圖片是否為動(dòng)畫(huà)的方法

 更新時(shí)間:2020年09月04日 23:13:43   投稿:shichen2014  
這篇文章主要介紹了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)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論