Maison >développement back-end >tutoriel php >Comment puis-je récupérer les en-têtes et le corps de la réponse HTTP à l'aide de PHP cURL ?

Comment puis-je récupérer les en-têtes et le corps de la réponse HTTP à l'aide de PHP cURL ?

DDD
DDDoriginal
2024-12-28 08:26:09846parcourir

How Can I Retrieve Both the HTTP Response Headers and Body using PHP cURL?

Récupération des en-têtes et du corps de réponse dans PHP cURL

La bibliothèque cURL de PHP fournit un moyen puissant d'envoyer des requêtes HTTP. Cependant, lors de l'utilisation de curl_exec(), le comportement par défaut consiste à renvoyer uniquement le corps de la réponse. Pour obtenir à la fois les en-têtes et le corps en une seule requête, considérez la solution suivante présentée dans la documentation PHP :

// Initialize cURL and set necessary options
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  // Enable return of response
curl_setopt($ch, CURLOPT_HEADER, 1);       // Include headers in response

// Execute the request
$response = curl_exec($ch);

// Extract header and body information
$header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
$header = substr($response, 0, $header_size);
$body = substr($response, $header_size);

Dans cette approche, curl_exec() renvoie une chaîne contenant à la fois les en-têtes et le corps. Nous utilisons ensuite curl_getinfo() pour obtenir la taille des en-têtes et diviser la réponse en conséquence.

Bien que cette solution soit généralement efficace, il est important de noter qu'elle peut ne pas être fiable lors de l'utilisation de serveurs proxy ou de la gestion des redirections. Par conséquent, il est conseillé d'explorer d'autres options, telles que l'approche suggérée par @Geoffrey dans les commentaires de la question, pour garantir une récupération fiable de l'en-tête et du corps dans tous les scénarios.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn