Нужна функция, которая проверяет, что задана именно ссылка с картинкой, а не просто ссылка или рандомный текст. И если все же задана ссылка с картинкой, то проверяла, существует ли эта картинка по заданой ссылке. Если нет, то выводит сообщение типа: вы задали не верный url к картинке.
это вообще единственный способ определить, что это на самом деле картинка, а не что-то ещё. так, ну и какие мысли? Подскажу про HEAD
getimagesize совместно с allow_url_fopen. Правда если вам скормят очень большую картинку, будет тяжко, скорее всего. И видел какой-то трюк, как поломать getimagesize, связанный с его реализацией.
Не, ну так-то есть одна малюсенькая клёвая штучка, которая читая считанные байты определяет и формат и размер
Код (PHP): <?php $img = "image.png"; switch (exif_imagetype($img)) { case 1: echo "IMAGETYPE_GIF"; break; case 2: echo "IMAGETYPE_JPEG"; break; case 3: echo "IMAGETYPE_PNG"; break; case 4: echo "IMAGETYPE_SWF"; break; case 5: echo "IMAGETYPE_PSD"; break; case 6: echo "IMAGETYPE_BMP"; break; case 7: echo "IMAGETYPE_TIFF_II (порядок байт intel)"; break; case 8: echo "IMAGETYPE_TIFF_MM (порядок байт motorola) "; break; case 9: echo "IMAGETYPE_JPC"; break; case 10: echo "IMAGETYPE_JP2"; break; case 11: echo "IMAGETYPE_JPX"; break; case 12: echo "IMAGETYPE_JB2"; break; case 13: echo "IMAGETYPE_SWC"; break; case 14: echo "IMAGETYPE_IFF"; break; case 15: echo "IMAGETYPE_WBMP"; break; case 16: echo "IMAGETYPE_XBM"; break; case 17: echo "IMAGETYPE_ICO"; break; default : echo "по ссылке не картинка"; } http://php.net/manual/ru/function.exif-imagetype Добавлено спустя 2 минуты 4 секунды:
вопрос был про картинку на другом сервере, даже не известно, картинку ли, и не хочется скачивать. на самом деле вроде как ответ такой: https://github.com/tommoor/fastimage
igordata, ну пихни туда ссылку на другую картинку, и все будет работать как надо. Добавлено спустя 2 минуты 56 секунд: если не известно картинку ли передали, выполнится дефолный блок switch
прикольно, спасибо. только это расширение нужно установить, а тому классу ничего не нужно вроде. Но прикольно, я не знал, что он умеет читать по http не целиком.