根據這裡和其他地方回報的問題更新的 is_ani
<?php
function is_ani($filename) {
if(!($fh = @fopen($filename, 'rb')))
return false;
$count = 0;
//動畫 GIF 包含多個「影格」,每個影格都有一個由以下內容組成的標頭:
// * 一個靜態的 4 位元組序列 (\x00\x21\xF9\x04)
// * 4 個可變位元組
// * 一個靜態的 2 位元組序列 (\x00\x2C) (有些變體可能會使用 \x00\x21?)
// 我們讀取檔案直到到達檔案末尾,或我們找到
// 至少 2 個影格標頭
while(!feof($fh) && $count < 2) {
$chunk = fread($fh, 1024 * 100); //一次讀取 100KB
$count += preg_match_all('#\x00\x21\xF9\x04.{4}\x00(\x2C|\x21)#s', $chunk, $matches);
}
fclose($fh);
return $count > 1;
}
?>