необходимо предпринять лишь несколько шагов. 1.Initialize 2. Установите параметры 3. Выполнить 4. Закройте соединение
<?php
$url = "www.example.com";
//initilise
$ch = curl_init();
//set the option
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
//no body
curl_setopt($ch, CURLOPT_NOBODY, 1);
//set the method
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
// request header
curl_setopt($ch, CURLINFO_HEADER_OUT, 1);
//execute
$result = curl_exec($ch);
$information = curl_getinfo($ch);
//close the connection
curl_close($ch);
echo '-- REQUEST HEADER --------------------------'.PHP_EOL;
print_r($information['request_header']);
echo '--------------------------------------------'.PHP_EOL;
echo PHP_EOL;
echo '-- RESPONSE HEADER -------------------------'.PHP_EOL;
print_r($result);
echo '--------------------------------------------'.PHP_EOL;
Curl использует GET по умолчанию. Если вы хотите установить его методом POST, то опция CURLOPT_POST. Вы можете установить множество опций, посмотреть руководство по php.net.
Спасибо, но мне нужно получить только заголовки ответов, а не тело. Удаленный zip-файл ~ 200 МБ, и я не хочу скачивать его каждый раз. Ваш код возврата заголовка + тело. – fox91
Хорошо, только что отредактированный, если вы не хотите возвращать тело, вам нужно установить для параметра CURLOPT_NOBODY значение true. Надеюсь, это поможет. – monir009
Как вы можете видеть из заголовка запроса, если для параметра CURLOPT_NOBODY установлено значение true, используется метод HEAD, а не GET. Мне нужно использовать GET. – fox91