Как проверить наличие файла на удаленном сервере?

Пробовал так:
$url = 'http://fok39.ru/index.php';
$file_headers = @get_headers($url);

$file_exists = 'no';
if (false !== strpos($file_headers[0], '200 OK')) {
  // Проверка MIME-типа: [3] => Content-Type: image/png
  $file_exists = 'yeah';
  echo $file_exists;
}


И так:
$url = "http://url.to/favicon.ico";

 // пробуем открыть файл для чтения
if (@fopen($url, "r")) {
 echo "Файл существует";
 } else {
 echo "Файл не найден";
 }


Файл не находит. Подскажите в чем может быть проблема и как решить.
  • Вопрос задан
  • 6201 просмотр
Пригласить эксперта
Ответы на вопрос 3
FanatPHP
@FanatPHP
Чебуратор тега РНР
Для начала надо открыть тебе страшную тайну: на удаленном сервере не бывает файлов.
После усвоения этой истины следует приступить к изучению протокола НТТР и, в частности, кодов ответа.
Не бог весть какой точный индикатор, конечно, но других вариантов все равно нет.

После этого тебе следует перейти во второй класс и научиться хотя бы минимально отлаживать свои скрипты. В частности, если ты пытаешься найти какую-то строчку в возвращаемом заголовке, то надо догадаться сообразить поинтересоваться - а что в этом заголовке вообще лежит. Есть ли там что-нибудь.

Кстати, у меня твой первый код работает, есличо.
Ответ написан
Комментировать
Surzhikov
@Surzhikov
Разработчик
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы