例
コードは次のとおりです | |
/* |
あるいはこうしてください
PHP を使用して、gif 画像がアニメーション化されているかどうか (複数のフレーム) を判断します
コードは次のとおりです | |
関数 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アニメーションはgif89形式であり、ファイルの先頭がgif89であることがわかります。ただし、多くの透明な画像でも gif89 形式が使用されています
GOOGLE: ファイルに chr(0×21).chr(0xff).chr(0×0b).'NETSCAPE2.0' が含まれているかどうかを確認できます
chr(0×21).chr(0xff)はgif画像の拡張機能部分のヘッダー、「NETSCAPE2.0」は拡張機能を実行するプログラムの名前です
プログラムコードは次のとおりです:
コードは次のとおりです | |
機能チェック($image){ |
この時点で読み取られたデータ ストリームには chr(0×21).chr(0xff).chr(0×0b).'NETSCAPE2.0' が含まれているため、テストでは 1024 バイトの読み取りで十分であることがわかりました