Here are the response codes ready for pasting in an ini-style file. Can be used to provide more descriptive message, corresponding to 'http_code' index of the arrray returned by curl_getinfo().
These are taken from the W3 consortium HTTP/1.1: Status Code Definitions, found at
http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
[Informational 1xx]
100="Continue"
101="Switching Protocols"
[Successful 2xx]
200="OK"
201="Created"
202="Accepted"
203="Non-Authoritative Information"
204="No Content"
205="Reset Content"
206="Partial Content"
[Redirection 3xx]
300="Multiple Choices"
301="Moved Permanently"
302="Found"
303="See Other"
304="Not Modified"
305="Use Proxy"
306="(Unused)"
307="Temporary Redirect"
[Client Error 4xx]
400="Bad Request"
401="Unauthorized"
402="Payment Required"
403="Forbidden"
404="Not Found"
405="Method Not Allowed"
406="Not Acceptable"
407="Proxy Authentication Required"
408="Request Timeout"
409="Conflict"
410="Gone"
411="Length Required"
412="Precondition Failed"
413="Request Entity Too Large"
414="Request-URI Too Long"
415="Unsupported Media Type"
416="Requested Range Not Satisfiable"
417="Expectation Failed"
[Server Error 5xx]
500="Internal Server Error"
501="Not Implemented"
502="Bad Gateway"
503="Service Unavailable"
504="Gateway Timeout"
505="HTTP Version Not Supported"
And an example usage:
<?php
$ch = curl_init(); // create cURL handle (ch)
if (!$ch) {
die("Couldn't initialize a cURL handle");
}
// set some cURL options
$ret = curl_setopt($ch, CURLOPT_URL, "http://mail.yahoo.com");
$ret = curl_setopt($ch, CURLOPT_HEADER, 1);
$ret = curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
$ret = curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
$ret = curl_setopt($ch, CURLOPT_TIMEOUT, 30);
// execute
$ret = curl_exec($ch);
if (empty($ret)) {
// some kind of an error happened
die(curl_error($ch));
curl_close($ch); // close cURL handler
} else {
$info = curl_getinfo($ch);
curl_close($ch); // close cURL handler
if (empty($info['http_code'])) {
die("No HTTP code was returned");
} else {
// load the HTTP codes
$http_codes = parse_ini_file("path/to/the/ini/file/I/pasted/above");
// echo results
echo "The server responded: <br />";
echo $info['http_code'] . " " . $http_codes[$info['http_code']];
}
}
?>
curl_getinfo
(PHP 4 >= 4.0.4, PHP 5)
curl_getinfo — Informationen zu einem bestimmten Transfer abfragen
Beschreibung
Gibt Informationen über den letzen Transfer zurück.
Parameter-Liste
-
ch -
Ein von curl_init() zurückgegebenes cURL-Handle.
-
opt -
Eine der folgenden Konstanten:
-
CURLINFO_EFFECTIVE_URL- Letzter effektiver URL -
CURLINFO_HTTP_CODE- Zuletzt empfangener HTTP-Code -
CURLINFO_FILETIME- Übertragungszeit für das empfangene Dokument; wenn -1 zurückgegeben wird ist die Zeit unbekannt -
CURLINFO_TOTAL_TIME- Gesamtdauer des letzten Transfers in Sekunden -
CURLINFO_NAMELOOKUP_TIME- Zeit in Sekunden zur Auflösung des Hostnamens -
CURLINFO_CONNECT_TIME- Dauer des Verbindungsaufbaus in Sekunden -
CURLINFO_PRETRANSFER_TIME- Zeit in Sekunden zwischen dem Start und dem eigentlichen Beginn des Empfangs -
CURLINFO_STARTTRANSFER_TIME- Zeit in Sekunden bis zur Übertragung des ersten Bytes -
CURLINFO_REDIRECT_TIME- Zeit in Sekunden, die von allen Umleitungsschritten beansprucht wird, bevor der eigentliche Transfer beginnt -
CURLINFO_SIZE_UPLOAD- Anzahl der gesendeten Bytes -
CURLINFO_SIZE_DOWNLOAD- Anzahl der empfangenen Bytes -
CURLINFO_SPEED_DOWNLOAD- Durchschnittliche Download-Geschwindigkeit -
CURLINFO_SPEED_UPLOAD- Durchschnittliche Upwnload-Geschwindigkeit -
CURLINFO_HEADER_SIZE- Gesamtgröße aller empfangenen Header -
CURLINFO_HEADER_OUT- Der gesendete Request. Verfügbar seit PHP 5.1.3 -
CURLINFO_REQUEST_SIZE- Gesamtgröße aller Abfragen, momentan nur für HTTP verfügbar -
CURLINFO_SSL_VERIFYRESULT- Ergebnis der SSL-Zertifikat-Überprüfung, angefordert durch das Setzen von CURLOPT_SSL_VERIFYPEER -
CURLINFO_CONTENT_LENGTH_DOWNLOAD- Die Größe des Downloads, ermittelt aus dem Content-Length-Header -
CURLINFO_CONTENT_LENGTH_UPLOAD- Festgesetzte Größe des Uploads -
CURLINFO_CONTENT_TYPE- Der Content-Type des geladenen Objekts, ermittelt aus dem empfangenen Content-Type-Header. Ein Rückgabewert NULL bedeutet, daß der Server einen ungültigen Header gesendet hat
-
Rückgabewerte
Wird der Parameter opt angegeben, wird der entsprechende
Wert als string zurückgegeben. Andernfalls liefert die Funktion ein assoziatives
Array mit den folgenden Elementen zurück (analog dem Parameter opt):
- "url"
- "content_type"
- "http_code"
- "header_size"
- "request_size"
- "filetime"
- "ssl_verify_result"
- "redirect_count"
- "total_time"
- "namelookup_time"
- "connect_time"
- "pretransfer_time"
- "size_upload"
- "size_download"
- "speed_download"
- "speed_upload"
- "download_content_length"
- "upload_content_length"
- "starttransfer_time"
- "redirect_time"
Changelog
| Version | Beschreibung |
|---|---|
| 5.1.3 |
Konstante CURLINFO_HEADER_OUT eingeführt.
|
Beispiele
Beispiel #1 curl_getinfo()-Beispiel
<?php
// Eine cURL-Resource erstellen
$ch = curl_init('http://www.yahoo.com/');
// ausführen
curl_exec($ch);
// prüfen, ob ein Fehler aufgetreten ist
if(!curl_errno($ch))
{
$info = curl_getinfo($ch);
echo 'Es wurden ' . $info['total_time'] . ' Sekunden benötigt für einen Request an ' . $info['url'];
}
// Resource schliessen
curl_close($ch);
?>
curl_getinfo
ssttoo at hotmail dot com
06-Apr-2004 09:13
06-Apr-2004 09:13
12-Sep-2002 11:02
You can get some documentation about what these values mean in the libcurl C API documentation here:
http://curl.haxx.se/libcurl/c/curl_easy_getinfo.html