exif_imagetype - лучшее решение.
Этот метод быстрее, чем использование getimagesize. Цитировать php.net"Возвращаемое значение - это то же значение, которое getimagesize () возвращает в индексе 2, но exif_imagetype () намного быстрее."
if(exif_imagetype('path/to/image.jpg')) {
// your image is valid
}
Обновление:
После прочтения, что getimagesize может быть ненадежным, я попытался найти больше информации о том, какие типы файлов могут давать ложные срабатывания, но не смог найти больше информации, поэтому выполнил краткий тест (используя exif_imagetype
):
PowerPoint-survey-results.pptx - N
LRMonoPhase4.wav - N
TestWordDoc.doc - N
drop.avi - N
test.dll - N
raw_data_sample.sav - N
text.txt - N
Excel-survey-results.xlsx - N
pdf-test.pdf - N
simplepie-1.5.zip - N
Word-survey-results.docx - N
centaur_1.mpg - N
Test.svg - N
multipage_tif_example.tif - Y
200.gif - Y
Test.png - Y
test.jpg - Y
Я понимаю, что это не является исчерпывающим, однако, по крайней мере, покажите, что с обычными типами файлов результаты ожидаются.