画像のフォーマットを判別する

<?php
$filename = 'path/to/image';
$handle = fopen($filename, 'rb');
$header = fread($handle, 8);
fclose($handle);

if ($header === "\x89PNG\x0d\x0a\x1a\x0a") {
    echo 'PNG';
} elseif (substr($header, 0, 2) === "\xff\xd8") {
    echo 'JPEG';
} elseif (preg_match('/\AGIF8[79]a/', $header)) {
    echo 'GIF';
} else {
    echo 'something else'
}