Как определить, является ли * .ico файл допустимым значком в PHP? - PullRequest
0 голосов
/ 01 августа 2010

Я хотел бы проверить, являются ли * .ico изображения действительными значками в PHP. Я пытался использовать функцию getimagesize, но она не поддерживает файлы ICO.

Ответы [ 4 ]

4 голосов
/ 01 августа 2010
Значок

http://en.wikipedia.org/wiki/ICO_(file_format)

должен начинаться с байтов '0x00 0x00 0x01 0x00', этого должно быть достаточно для простого теста.

1 голос
/ 01 августа 2010

ico-файлы - это, в основном, файлы изображений, если вы измените jpeg или gif / png на расширение ico, он будет работать нормально, поэтому, если вы продолжаете проверять тип изображения, он будет работать

0 голосов
/ 22 января 2017

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";
}
0 голосов
/ 21 марта 2011
...