Как проверить на php открывается ли изображение по ссылке?
Привет!
Есть скрипт, в который попадает урл картинки и дальше функцией copy сохраняется. Так вот у меня стоит проверка если copy возвратил true то хорошо, иначе - плохо. Но при ошибке, когда попадается странный урл, вроде с картинкой, но она не открывается, либо пишет access denied, либо что-то еще, то функция выкидывает fatal error. Значит перед использованием copy надо проверить, открывается ли картинка по ссылке или нет. Как это сделать?
Arik, это ошибка, после которой весь скрипт перестает работать))) а если серьезно - при отловке через try catch можно ли продолжить скрипт? То есть не обрабатывать эту ошибку, а проигнорировать?
lolrofl01, можно, просто ничего завершающего не реализовывайте в catch, обычно если ничего критичного, то там логируют что такая ошибка была и дальше продолжают работать
lolrofl01, Довольный Жизнью, Arik Ошибки уровня фатал не могут быть проигнорированы и трайкетч тут ничем не поможет, скрипт в любом случае закончит работу.
Arik, не отловить, а обработать, это разные вещи, по факту скрипт завершает работу в любом случае, вы просто можете, например, отослать емэйл с факами разработчикам каждый раз при возникновении фатала.
может там просто exit('Fatal error')
варианты с идиотизмом такого плана конечно есть, но более очевидным все же кажется вариант когда изображение пустое и нормальная функция тупо падает при несовпадении типов входных данных.
ThunderCat, согласен. Это не полноценное решение - просто копипаст для обоначения направления поиска. Проверка, что указанный урл возвращает http 200.
Чтобы проверить, что по указанному урл именно картинка нужно проверять mime или вообще построить решение вокруг функций GD (php.net/manual/ru/function.imagecreatefromgd.php)