Intereting Posts
symfony2 и ошибка исключения исключения PHP DOM и одинарные кавычки Существует ли внедряемый (не теоретический) способ доказать, принадлежит ли адрес электронной почты реальной учетной записи электронной почты? Правильный способ сделать динамическую навигацию в Laravel 5 Заменить часть строки Загрузка содержимого div с другой php-страницы и показ с использованием ajax Как сделать страницу перезагрузки Firefox при нажатии кнопки «Назад»? Получить «правильный» год определенной даты с PHP DateTime UCS2 / HexEncoded символы в UTF8 в php Как переписать URL-адрес только на PHP? Как отобразить «12 минут назад» и т. Д. На веб-странице PHP? Получать результаты из MySQL с использованием PDO Содержимое ответа должно быть строкой или объектом, реализующим __toString (), «boolean», заданный после перехода на psql Jpgraph не меняет цвета на моей панели Как вернуть строку клиенту после установки заголовка

Как проверить, существует ли файл на внешнем сервере

Как проверить, существует ли файл на внешнем сервере? У меня есть url " http://logs.com/logs/log.csv ", и у меня есть скрипт на другом сервере, чтобы проверить, существует ли этот файл. Я пытался

$handle = fopen("http://logs.com/logs/log.csv","r"); if($handle === true){ return true; }else{ return false; } 

а также

 if(file_exists("http://logs.com/logs/log.csv")){ return true; }else{ return false; } 

Эти методы просто не работают

  1. Убедитесь, что включен отчет об ошибках.

  2. Используйте if($handle)

  3. Проверить allow_url_fopen верно.

  4. Если это не работает, используйте этот метод на странице file_exists .

 function checkExternalFile($url) { $ch = curl_init($url); curl_setopt($ch, CURLOPT_NOBODY, true); curl_exec($ch); $retCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); return $retCode; } $fileExists = checkExternalFile("http://example.com/your/url/here.jpg"); // $fileExists > 400 = not found // $fileExists = 200 = found. 

Это должно работать:

 $contents = file_get_contents("http://logs.com/logs/log.csv"); if (strlen($contents)) { return true; // yes it does exist } else { return false; // oops } 

Примечание. Предполагается, что файл не пуст.

  <?php $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 4file dir); curl_setopt($ch, CURLOPT_HEADER, true); curl_setopt($ch, CURLOPT_NOBODY, true); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_MAXREDIRS, 10); $data = curl_exec($ch); curl_close($ch); preg_match_all("/HTTP\/1\.[1|0]\s(\d{3})/",$data,$matches); //check for HTTP headers $code = end($matches[1]); if(!$data) { echo "file could not be found"; } else { if($code == 200) { echo "file found"; } elseif($code == 404) { echo "file not found"; } } ?>