Maison >développement back-end >tutoriel php >Comment puis-je séparer efficacement les en-têtes et le corps dans les requêtes PHP cURL ?

Comment puis-je séparer efficacement les en-têtes et le corps dans les requêtes PHP cURL ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-31 06:39:11244parcourir

How Can I Efficiently Separate Headers and Body in PHP cURL Requests?

Récupération des en-têtes et du corps dans les requêtes PHP cURL

Lorsque vous effectuez des requêtes cURL à l'aide de PHP, la récupération des en-têtes de réponse et du corps peut être une tâche difficile. défi. L'option CURLOPT_HEADER, tout en renvoyant le corps avec les en-têtes, nécessite une analyse manuelle pour extraire le corps. Pour une solution plus efficace et sécurisée, envisagez l'approche suivante :

Solution :

Comme suggéré par la documentation PHP, en utilisant une combinaison de CURLOPT_RETURNTRANSFER et en récupérant la taille de l'en-tête de CURLINFO_HEADER_SIZE permet la séparation des en-têtes et body :

// Initialize cURL
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);

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

// Extract header size
$header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);

// Separate headers and body
$header = substr($response, 0, $header_size);
$body = substr($response, $header_size);

Attention :

Bien que cette solution soit généralement fiable, elle peut ne pas fonctionner de manière cohérente lors de l'utilisation de serveurs proxy ou de la gestion de certains types de redirections. Dans de tels cas, des approches alternatives, telles que celle mentionnée dans la question initiale, peuvent fournir des résultats plus fiables.

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