2009-12-01 14 views

Antwort

39

können Sie curl_getinfo verwenden:

Vor dem Aufruf

curl_setopt($ch, CURLINFO_HEADER_OUT, true); 

Nach

$headers = curl_getinfo($ch, CURLINFO_HEADER_OUT); 
+1

Leider zeigt dies nicht den Körper der cURL Anfrage. Kann jemand das zeigen? Offensichtlich übergeben wir den Körper an cURL, aber zum Debuggen würde ich gerne GENAU sehen, was cURL sendet. –

+0

@ChadwickMeyer Ich bin auf der Suche nach dem gleichen Ding: wie man die Überschriften und den Antragkörper zeigt. Scheint nicht möglich zu sein. . :-( –

2

sicher sein, die die CURLINFO_HEADER_OUT Option zu setzen, bevor sie

curl_setopt curl_getinfo zu nennen ($ c, CURLINFO_HEADER_OUT, wahr);

+0

Das ist nicht Code –

+2

Bitte weisen darauf hin arbeiten, was mit ihm los ist – jlb

+0

@Janek Es sollte wie folgt gelesen werden: curl_setopt ($ c, CURLOPT_HEADER, true); – pcdinh

4

AFAIK, die PHP/CURL-Bindung fehlt noch die richtige Unterstützung für CURLOPT_DEBUGFUNCTION, die ein Rückruf von libcurl ist, die alle diese Details bereitstellen kann.

Das ist der Hauptgrund, warum ich Leuten empfehle, HTTP-Scripting-Dinge mit dem curl-Befehlszeilentool und seiner Option --trace-ascii FIRST zu erarbeiten und diese dann in eine PHP-Funktion zu übersetzen.

+0

Es sieht aus wie du hast Recht, ich stocherte um die neuesten stabilen PHP Quelle ein wenig, und es sieht so aus, als ob sie ** ** CURLOPT_DEBUGFUNCTION benutzen, um ihre CURLINFO_HEADER_OUT Optionen zu implementieren, aber sie stellen keine voll funktionsfähige CURLOPT_DEBUGFUNCTION dar. Randnotiz: Ich erinnere mich an Ihre Emails von der php curl Mailingliste Ich bin erstaunt, dass Sie immer noch die Geduld haben, irgendeine PHP-bezogene libcurl-Unterstützung zu machen :) –

8
<?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)); 
?> 

verfügbar Nur in PHP 5.1.3 http://php.net/manual/en/function.curl-getinfo.php


Sie überprüfen können, dass sie die gleichen sind, indem Sie Ihre Konsole und das Schlagen

curl http://example.com/ -I

oder

cu rl --trace-ascii /file.txt http://example.com/