Может ли PHP curl возвращать объект с телом и заголовками в одном запросе?
Может ли curl возвращать объект, который имеет заголовки и тело как отдельные свойства?
Вот что я делаю сейчас. Это возвращает строку (?) С заголовком сначала, а затем тело после:
$session = curl_init($url);
curl_setopt($session, CURLOPT_RETURNTRANSFER, true);
curl_setopt($session, CURLOPT_HEADER, true);
$response = curl_exec($session);
echo $response; // string
Я хочу:
...
$response = curl_exec($session);
$header = $response->headers;
$body = $response->body;
Я видел аналогичный вопрос, который предлагает запросить как заголовки, так и тело, а затем разобрать результаты. Я не спрашиваю об этом.
Я специально спрашиваю о возвращении object
с телом и заголовками в качестве отдельных свойств.
Если ответ "Нет, это невозможно", я приму этот ответ. Я также соглашусь: "Нет curl
не делает этого, но здесь еще называется swurl
(или что-то еще), возвращающее объект..."
Ответы
Ответ 1
Заголовки и тело разделяются пустой строкой, вы можете просто разделить на это:
[$headers, $body] = explode("\r\n\r\n", $response, 2);
Объектно-ориентированная версия предприятия:
$response = new stdClass();
[$response->headers, $response->body] = explode("\r\n\r\n", curl_exec($session), 2);