При работе с PHP и cURL часто необходимо получить коды ответов HTTP-заголовка с удаленного сервера. В этой статье мы рассмотрим несколько методов выполнения этой задачи с использованием PHP cURL, попутно предоставляя разговорные объяснения и примеры кода.
Метод 1: базовый запрос cURL
Самый простой способ получить код ответа HTTP-заголовка – создать базовый запрос cURL и извлечь код ответа из заголовков.
$url = 'https://example.com';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_NOBODY, true);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo "HTTP response code: " . $httpCode;
Метод 2: использование CURLOPT_HEADERFUNCTION
Другой подход — использовать параметр CURLOPT_HEADERFUNCTION, который позволяет определить функцию обратного вызова для обработки заголовков ответов. В функции обратного вызова вы можете извлечь код ответа.
$headers = [];
$httpCode = null;
$url = 'https://example.com';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADERFUNCTION, function($ch, $header) use (&$headers) {
$headers[] = $header;
return strlen($header);
});
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo "HTTP response code: " . $httpCode;
Метод 3: использование функции get_headers()
PHP предоставляет функцию get_headers()для получения заголовков ответа. Мы можем использовать эту функцию для получения кода ответа HTTP.
$url = 'https://example.com';
$headers = get_headers($url);
$httpCode = substr($headers[0], 9, 3);
echo "HTTP response code: " . $httpCode;
В этой статье мы рассмотрели различные методы получения кодов ответов HTTP-заголовка с помощью PHP cURL. Мы рассмотрели основные запросы cURL, используя CURLOPT_HEADERFUNCTION и функцию get_headers(). Эти методы обеспечивают гибкость и позволяют выбрать подход, соответствующий вашим конкретным требованиям.
Поняв, как получать коды ответов HTTP-заголовка, вы сможете улучшить свои PHP-приложения cURL и эффективно обрабатывать ответы сервера.
Не забывайте правильно обрабатывать исключения и ошибки в своем коде, чтобы обеспечить надежность и безошибочное выполнение.
Не стесняйтесь экспериментировать с этими методами и выбирайте тот, который лучше всего соответствует вашим потребностям в ваших проектах PHP cURL.