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?
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);
<?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/
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.
Assurez-vous de définir L'option CURLINFO_HEADER_OUT avant de faire l'appel curl_getinfo
Curl_setopt ($c, CURLINFO_HEADER_OUT, true);