通常、ファイルの種類はファイル拡張子に基づいて判断されますが、これは非常に信頼性が低く、拡張子を変更することで簡単に回避できます。通常、ファイルを識別するにはファイル情報を読み取る必要があります。
$files = array('./test.jpg', 'test.png');
$fileTypes = 配列(
7790 => 'exe',
7784 => 'ミディ'、
8075 => 'zip',
8297 => 'rar',
225216 => 'jpg',
7173 => 'gif',
6677 => 'bmp',
13780 => 'png',
);
foreach($files as $file) {
$fp = fopen($file, 'rb');
$bin = fread($fp, 2) // 最初の 2 バイトのみを読み取ります
fclose($fp);
$strInfo = @unpack("C2chars", $bin);
$typeCode = intval($strInfo['chars1'].$strInfo['chars2']);
$fileType = isset($fileTypes[$typeCode]) $fileTypes[$typeCode] : '不明';
echo $file , ' タイプ : ', $fileType, ' コード: ', $fileType, '
';
}