Для проверки удаленного файла на существование достаточно распарсить заголовок ответа, полученный методом HEAD, на наличие фразы 200 OK, которая говорит о том, что все в порядке.
$url = 'http://путь_к_файлу/';
stream_context_set_default(
array (
'http' => array (
'method' => 'HEAD',
'timeout' => 6
)
)
);
$headers = @get_headers($url);
if (preg_match("/(200 OK)$/", $headers[0])) {
echo 'Файл существует';
} else {
echo "Нет такого файла";
}
Ссылки
Источник: https://www.kobzarev.com/programming/remote-file-existence-check/