Какие коды статуса HTTP мы должны рассмотреть для мертвых ссылок

Мы выполняем вызов curl из PHP ниже.

$url = $fullurl;

if (isset($url)) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch , CURLOPT_RETURNTRANSFER, 1);
$data = curl_exec($ch);
$headers = curl_getinfo($ch);
curl_close($ch);

$check_url_status =  $headers['http_code'];
if ($check_url_status == '200')
$ress = "Link Works";
else
$ress =  "Broken Link";

}

Какие другие коды статуса HTTP мы должны рассмотреть, чтобы проверить, не является ли URL неработающей / неработающей ссылкой.

3

Решение

Запомните 5 классов кодов HTTP Status: 1xx Continue (переключение протокола), 2xx OK, 3xx Redirect, ошибка клиента 4xx, ошибка сервера 5xx.

Если ваш клиент Curl следует перенаправлениям (3xx), я думаю, вы можете просто проверить этот код состояния <= 299. Все остальные коды статуса приведут к «битой ссылке».

В зависимости от того, насколько глубоким является ваш тест, вы также можете подумать о следующих случаях:

  • 401 Unauthorized / 403 Forbidden: ресурс требует аутентификации. Это не означает, что ссылка не работает, но авторизованный клиент может ее видеть, а другие — нет.
  • 204 Нет содержимого: ресурс доступен, но не возвращает никакого содержимого. Некоторые аналитические ресурсы возвращают 204. Но визуальным результатом будет сломанное изображение или ссылка на пустую страницу.

Если ваша цель — изменить отображение неработающей ссылки, вы можете использовать Javascript для управления ею на стороне клиента, но она может быть ограничена вашим доменом. Увидеть этот вопрос

2

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector