Подтвердить что ты не робот

Как проверить, существует ли файл из URL-адреса

Мне нужно проверить, существует ли конкретный файл на удаленном сервере. Использование is_file() и file_exists() не работает. Любые идеи, как сделать это быстро и легко?

4b9b3361

Ответ 1

Вы должны использовать CURL

function does_url_exists($url) {
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_NOBODY, true);
    curl_exec($ch);
    $code = curl_getinfo($ch, CURLINFO_HTTP_CODE);

    if ($code == 200) {
        $status = true;
    } else {
        $status = false;
    }
    curl_close($ch);
    return $status;
}

Ответ 2

Вам не нужно CURL для этого... Слишком много накладных расходов, просто хочу проверить, существует ли файл или нет...

Используйте PHP get_header.

$headers=get_headers($url);

Затем проверьте, есть ли $result [0] 200 OK (это означает, что файл есть)

Функция проверки работоспособности URL-адреса может быть следующей:

function UR_exists($url){
   $headers=get_headers($url);
   return stripos($headers[0],"200 OK")?true:false;
}

/* You can test a URL like this (sample) */
if(UR_exists("http://www.amazingjokes.com/"))
   echo "This page exists";
else
   echo "This page does not exist";

Ответ 4

Привет, согласно нашему тесту между двумя разными серверами, результаты выглядят следующим образом:

с использованием curl для проверки 10 файлов .png(каждый около 5 мб) был в среднем 5,7 сек. с помощью проверки заголовка для того же самого элемента потребовалось в среднем 7,8 секунды!

Итак, в нашем тестовом скручивании было намного быстрее, если вам нужно проверить более крупные файлы!

наша функция rot:

function remote_file_exists($url){
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_NOBODY, true);
    curl_exec($ch);
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);
    if( $httpCode == 200 ){return true;}
    return false;
}

вот наш пример проверки заголовка:

function UR_exists($url){
   $headers=get_headers($url);
   return stripos($headers[0],"200 OK")?true:false;
}

Ответ 5

Сделайте запрос с завихрением и посмотрите, возвращает ли он код состояния 404. Сделайте запрос с использованием метода запроса HEAD, чтобы он возвращал заголовки без тела.

Ответ 6

Вы можете использовать функцию file_get_contents();

if(file_get_contents('https://example.com/example.txt')) {
    //File exists
}