Как проверить, существует ли файл на Внешнем Сервере? У меня есть 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;
}
Эти methos просто не работают
Убедитесь, что отчет об ошибках включен.
Используйте if($handle)
Проверьте allow_url_fopen на true.
Если ничего из этого не работает, используйте этот метод на странице file_exists.
<?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";
}
}
?>
Это должно сработать:
$contents = file_get_contents("http://logs.com/logs/log.csv");
if (strlen($contents))
{
return true; // yes it does exist
}
else
{
return false; // oops
}
Примечание: Это предполагает, что файл не пуст