PHP判斷一個(gè)gif圖片是否為動(dòng)態(tài)圖片的方法
本文實(shí)例講述了PHP判斷一個(gè)gif圖片是否為動(dòng)態(tài)圖片的方法。分享給大家供大家參考。具體方法如下:
如何使用PHP來判斷一個(gè)gif圖片是否為動(dòng)態(tài)圖片(動(dòng)畫)?首先想到的是使用getimagesize()函數(shù)來看type值,發(fā)現(xiàn)都是gif,所以這個(gè)辦法是不可行的。下面是作者在網(wǎng)上看到的一個(gè)函數(shù),用來判斷gif是否為動(dòng)圖的。貼出來和大家分享
例子如下:
* 判斷圖片是否為動(dòng)態(tài)圖片(動(dòng)畫)
*/
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;
}
或者這樣做:
用PHP判斷一個(gè)gif圖片是不是動(dòng)畫(多幀)
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");
?>
例子2
gif動(dòng)畫是gif89格式的,發(fā)現(xiàn)文件開頭是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í)行的程序名
程序代碼如下:
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)畫';
}else{
echo'不是動(dòng)畫';
}
?>
測(cè)試發(fā)現(xiàn),讀取1024字節(jié)足夠了,因?yàn)榇藭r(shí)讀取的數(shù)據(jù)流中正好包含了 chr(0×21).chr(0xff).chr(0×0b).'NETSCAPE2.0'
希望本文所述對(duì)大家的PHP程序設(shè)計(jì)有所幫助。
相關(guān)文章
PHP使用PDO調(diào)用mssql存儲(chǔ)過程的方法示例
這篇文章主要介紹了PHP使用PDO調(diào)用mssql存儲(chǔ)過程的方法,結(jié)合簡(jiǎn)單實(shí)例形式分析了php基于pdo簡(jiǎn)單實(shí)現(xiàn)連接及調(diào)用存儲(chǔ)過程相關(guān)操作技巧,需要的朋友可以參考下2017-10-10
mayfish 數(shù)據(jù)入庫驗(yàn)證代碼
mayfish 可以靈活的自定義將要執(zhí)行寫入的數(shù)據(jù)內(nèi)容的校驗(yàn)規(guī)則,以減少開發(fā)人員手動(dòng)對(duì)每一個(gè)字段的數(shù)據(jù)進(jìn)行校驗(yàn)的麻煩。2010-04-04
php模板函數(shù) 正則實(shí)現(xiàn)代碼
有些空閑,就弄了下template函數(shù),比較粗糙。主要是利用正則表達(dá)式,把模板文件(html文件)轉(zhuǎn)換成php文件,從而實(shí)現(xiàn)前后臺(tái)分離,即是所謂的mvc思想了2012-10-10
php + ajax 實(shí)現(xiàn)的寫入數(shù)據(jù)庫操作簡(jiǎn)單示例
這篇文章主要介紹了php + ajax 實(shí)現(xiàn)的寫入數(shù)據(jù)庫操作,結(jié)合實(shí)例形式分析了php + ajax 寫入數(shù)據(jù)庫基本原理、操作技巧與相關(guān)使用注意事項(xiàng),需要的朋友可以參考下2020-05-05

