En-têtes PHP, curl et raw

Lors de l'utilisation des fonctions PHP curl, est-il possible de voir les en-têtes raw exacts que curl envoie au serveur?

35
demandé sur Alan Storm 2009-12-02 00:06:48

4 réponses

Vous pouvez utiliser curl_getinfo:

Avant l'appel

curl_setopt($ch, CURLINFO_HEADER_OUT, true);

Après

$headers = curl_getinfo($ch, CURLINFO_HEADER_OUT);
40
répondu Greg 2011-11-10 15:45:13
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLINFO_HEADER_OUT, true);
curl_exec($ch);
var_dump(curl_getinfo($ch,CURLINFO_HEADER_OUT));
?>

Disponible uniquement en PHP 5.1.3 http://php.net/manual/en/function.curl-getinfo.php


Vous pouvez vérifier qu'ils sont identiques en utilisant votre console et en appuyant sur

Curl http://example.com/ -I

Ou

Curl -- trace - ASCII / fichier.txt http://example.com/

8
répondu angelfilm entertainment 2011-04-07 17:38:05

AFAIK, la liaison PHP/CURL manque toujours de support approprié pour CURLOPT_DEBUGFUNCTION qui est un rappel de libcurl qui peut fournir tous ces détails.

C'est la principale raison pour laquelle je recommande aux gens de travailler sur des scripts HTTP avec l'outil de ligne de commande curl et son option --trace-ascii, puis de traduire cela en une fonction PHP.

4
répondu Daniel Stenberg 2009-12-01 21:59:40

Assurez-vous de définir L'option CURLINFO_HEADER_OUT avant de faire l'appel curl_getinfo

Curl_setopt ($c, CURLINFO_HEADER_OUT, true);

2
répondu jlb 2009-12-01 21:24:37