Php is_image або як визначити, що файл є картинкою

Приклад php-рішення is_image () дозволяє визначити, що той чи інший файл є картинкою.

Скриптова мова PHP, в разі наявності бібліотеки GD, надає досить непоганий арсенал для роботи з графічними файлами. У той же час виникає питання: як визначити, що файл є картинкою? Варіантів розв'язання задачі багато, але я вважаю за краще використовувати php-функцію getimagesize ().

  • $ Filename - шлях і ім'я файлу або його URL (раджу використовувати urlencode ());
  • # 038; $ imageinfo - необов'язковий параметр, якому буде присвоєно масив з додатковими даними про зображення (IPTC).

У тому випадку, якщо доступ до картинки відсутній або файл має неправильний формат, php-функція getimagesize () поверне FALSE. Якщо все нормально, ми отримаємо масив з чотирьох елементів з інформацією про файл:

  • Індекс 0 містить ширину (англ. Width) картинки в пікселях.
  • Індекс 1 містить висоту (англ. Height) картинки в піселях.
  • Індекс 2 містить прапор, який вказує на тип картинки:
    • Значення 1 відповідає картинці в форматі GIF;
    • Значення 2 відповідає картинці в форматі JPEG;
    • Значення 3 відповідає картинці в форматі PNG;
    • Значення 4 відповідає картинці в форматі SWF;
    • Значення 5 відповідає картинці в форматі PSD;
    • Значення 6 відповідає картинці в форматі BMP;
    • Значення 7 відповідає картинці в форматі TIFF (байтовий порядок Intel);
    • Значення 8 відповідає картинці в форматі TIPP (байтовий порядок Motorola);
    • Значення 9 відповідає картинці в форматі JPC;
    • Значення 10 відповідає картинці в форматі JP2;
    • Значення 11 відповідає картинці в форматі JPX.
  • Індекс 3 містить текстову рядок виду: height = "123" width = "123". яка може бути використана безпосередньо в тезі IMG.

Тепер, коли ми розібралися з теорією, рішення стає очевидним.

Приклад. функція визначення чи є файл картинкою.

Зверніть увагу, що перед функцією getimagesize () стоїть знак «вуха» (@), що дозволяє уникнути виведення повідомлення про помилку, попередження і т.п. Далі йде перевірка на відповідність файлу формату картинки, а потім і його типу. В даному прикладі я обмежився трьома найбільш поширеними в Інтернеті типами картинок: GIF, JPEG і PNG.