Я хотел бы проверить, являются ли * .ico изображения действительными значками в PHP. Я пытался использовать функцию getimagesize, но она не поддерживает файлы ICO.
http://en.wikipedia.org/wiki/ICO_(file_format)
должен начинаться с байтов '0x00 0x00 0x01 0x00', этого должно быть достаточно для простого теста.
ico-файлы - это, в основном, файлы изображений, если вы измените jpeg или gif / png на расширение ico, он будет работать нормально, поэтому, если вы продолжаете проверять тип изображения, он будет работать
https://github.com/lordelph/icofileloader - это устанавливаемый компоновщиком пакет для чтения .ico-файлов. Чтобы проверить и проверить файл .ico, вы можете адаптировать этот пример:
$loader = new Elphin\IcoFileLoader\IcoFileService; //parse ico file try { $icon = $loader->fromFile('/path/to/icon.ico'); //we can iterate over the images in the icon foreach ($icon as $idx => $image) { printf("image %d is %s\n", $idx, $image->getDescription()); } } catch (\Exception $e) { echo "not a valid .ico file"; }
Проверьте здесь: http://plugins.trac.wordpress.org/browser/wp-favicons/trunk/includes/class-favicon.php метод getfiletype