Maison > développement back-end > tutoriel php > Comment puis-je extraire les en-têtes et le corps d'une requête cURL en PHP ?

Comment puis-je extraire les en-têtes et le corps d'une requête cURL en PHP ?

DDD
Libérer: 2024-12-20 01:07:17
original
437 Les gens l'ont consulté

How Can I Extract Both Headers and Body from a cURL Request in PHP?

Extraction des en-têtes et du corps des requêtes cURL en PHP

La bibliothèque PHP cURL fournit un moyen pratique d'envoyer des requêtes HTTP. Par défaut, cURL récupère uniquement le corps de la réponse. Cependant, vous pouvez rencontrer des situations dans lesquelles vous devez accéder à la fois aux en-têtes et au corps en une seule requête, sans émettre de requête HEAD distincte.

Solution : séparer les en-têtes et le corps

Pour récupérer les en-têtes et le corps dans une seule requête cURL, vous pouvez utiliser les étapes suivantes :

  1. Exécuter la requête cURL avec curl_exec() avec les options suivantes :

    • CURLOPT_RETURNTRANSFER : défini sur 1 pour renvoyer la réponse sous forme de chaîne.
    • CURLOPT_HEADER : défini sur 1 pour inclure les en-têtes de réponse dans la sortie.
  2. Après avoir exécuté la requête, obtenez la réponse en utilisant $response.
  3. Calculez la taille des en-têtes HTTP à l'aide de curl_getinfo($ch, CURLINFO_HEADER_SIZE) et stockez-la dans $header_size.
  4. Extrayez les en-têtes de $response en prenant la sous-chaîne jusqu'à $header_size. Stockez les en-têtes dans $header.
  5. Extrayez le corps de $response en prenant la sous-chaîne de $header_size jusqu'à la fin de la chaîne. Stockez le corps dans $body.

Exemple de code :

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

$response = curl_exec($ch);

$header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
$header = substr($response, 0, $header_size);
$body = substr($response, $header_size);
Copier après la connexion

Remarque : Sachez que cette méthode peut ne pas être fiable dans tous les cas, notamment lorsqu'il s'agit de serveurs proxy ou de certains types de redirections.

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal