Как проверить, содержит ли веб-страница файл изображения, используя PHP? - PullRequest
0 голосов
/ 03 апреля 2020

У меня есть этот код, чтобы проверить, существует ли файл на веб-странице. Код работает нормально, пока файл существует. Если файл не существует, должно появиться сообщение об ошибке, но оно не отображается. Любая помощь, пожалуйста?

<?
$ch = curl_init("https://en.wikipedia.org/wiki/File:Ash_Tree_-_geograph.org.uk_-_590711.jpg");

curl_setopt($ch, CURLOPT_NOBODY, true);
curl_exec($ch);
$retcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
// $retcode > 400 -> not found, $retcode = 200, found.
curl_close($ch);

if($retcode == 200)
{
echo "Found";
}
elseif($retcode == 400)
{
echo "Error";
}
?>


1 Ответ

1 голос
/ 03 апреля 2020

Если файл не существует, возвращаемый статус http должен быть 404.

...
400 Bad Request 
401 Unauthorized
402 Payment Required
403 Forbidden
404 Not Found
...

Список всех кодов: https://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml

Поэтому для строгой проверки этого условия (файл не найден), ваш код должен быть:

if ($retcode == 200)
{
    echo "Found";
}
elseif ($retcode == 404)
{
    echo "Error";
}
...