¿Cómo obtener los encabezados de respuesta HTTP y el cuerpo de la respuesta en una sola solicitud con cURL en PHP?
¡Hola a todos! Estoy escribiendo un parser en PHP usando cURL. Necesito obtener no solo el contenido de la página (cuerpo de la respuesta), sino también los encabezados HTTP (por ejemplo, Content-Type, Status Code, Location en redirecciones).
El problema es que cuando uso curl_exec(), solo obtengo el cuerpo de la respuesta. Si activo la opción CURLOPT_HEADER => true, el resultado muestra todo junto — tanto los encabezados como el cuerpo — y tengo que separarlos manualmente con explode(), lo cual es muy incómodo.
Aquí está mi código actual:
$ch = curl_init('https://example.com');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, true);
$response = curl_exec($ch);
curl_close($ch);
// Tengo que separar de forma forzada
$header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
$header = substr($response, 0, $header_size);
$body = substr($response, $header_size);
Esta forma funciona, pero me parece sucia. Además,
No answers yet.
Inicia sesión para dejar una respuesta
Blogs
Los 10 mejores frameworks de Java para desarrollo web en 2024