Может ли 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);