2016-04-28 3 views
1

Мы выполняем ниже вызов curl из php.какой код статуса http мы должны рассматривать для мертвой ссылки

$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 мы должны рассмотреть, не нарушена/мертвая ссылка.

+0

«Сломанная ссылка» означает, что запрошенный ресурс не существует, поэтому подходит 404. –

ответ

0

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

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

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

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

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

Смежные вопросы