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.