Обработка кодов состояния HTTP с помощью cURL
Когда Вы пытаетесь получить контент стороннего сайта, может оказаться так, что страница недоступна, доступ к содержимому ограничен, превышено время ожидания и т.д. Как быть в этом случае? Именно для этого и нужна обработка кодов состояния HTTP, которую мы сделаем с помощью cURL.
Как это работает?
Описанный ниже пример — не слишком сложный в понимании и его вполне достаточно, чтобы сделать проверку на код ответа.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
<?php $link = "http://www.google.com/images/icons/ui/doodle_plus/doodle_plus_google_logo_on_grey.gif"; if($curl = curl_init()) { curl_setopt($curl, CURLOPT_URL, $link); curl_setopt($curl, CURLOPT_HEADER, 1); curl_setopt($curl, CURLOPT_NOBODY, 1); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($curl, CURLOPT_MAXREDIRS, 1); curl_setopt($curl, CURLOPT_TIMEOUT, 10); curl_exec($curl); $http_code = curl_getinfo($curl, CURLINFO_HTTP_CODE); curl_close($curl); echo "<p>Код страницы: " . $http_code . "</p>"; if($http_code > 0 && $http_code < 400) { echo "<p>Код страницы удовлетворил условиям, выполняю функцию.</p>"; } else { echo "<p>Код страницы не удовлетворил условиям, функцию не выполняю.</p>"; } } ?> |
Как и в предыдущих статьях, для примера попробуем проверить ссылку на логотип Google. Как видите, мы дополнительно указываем параметр cURL CURLINFO_HTTP_CODE, который и позволит нам определить код ответа. Важно помнить, данный параметр необходимо указывать после выполнения запроса curl_exec, но перед завершением сеанса curl_close.
В примере мы выводим код ошибки на экран, чтобы знать наверняка, какой код нам был возвращен. А также для примера было добавлено условие к дальнейшим действиям.
Данный пример Вы также можете скачать из вложения в конце статьи.
Комментарии
Здесь еще никто не оставлял комментарии.