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!