PHP 5.5.16 is released

curl_getinfo

(PHP 4 >= 4.0.4, PHP 5)

curl_getinfoBelli bir oturum ile ilgili bilgi döndürür

Açıklama

mixed curl_getinfo ( resource $ct [, int $seçenek = 0 ] )

Belirtilen tanıtıcı ile ilgili son aktarım hakkında bilgi verir.

Değiştirgeler

ct

curl_init() işlevinden dönen bir cURL tanıtıcısı.

seçenek

Şu sabitlerden biri olabilir:

  • CURLINFO_EFFECTIVE_URL - Etkin son URL.
  • CURLINFO_HTTP_CODE - Alınan son HTTP kodu.
  • CURLINFO_FILETIME - Belgenin karşıdan alınma süresi; -1 ise süre bilirmiyor demektir.
  • CURLINFO_TOTAL_TIME - Saniye cinsinden son aktarımın toplam süresi.
  • CURLINFO_NAMELOOKUP_TIME - Saniye cinsinden isim çözümlenene kadar geçen süre.
  • CURLINFO_CONNECT_TIME - Saniye cinsinden bağlantı kurulana kadar geçen süre.
  • CURLINFO_PRETRANSFER_TIME - Saniye cinsinden başlangıçtan aktarım başlayana kadar geçen süre.
  • CURLINFO_STARTTRANSFER_TIME - Saniye cinsinden ilk bayt aktarılana kadar geçen süre.
  • CURLINFO_REDIRECT_TIME - Saniye cinsinden son aktarım başlayana kadar tüm yönlendirme adımlarının süresi.
  • CURLINFO_SIZE_UPLOAD - Karşıya yüklenen toplam bayt sayısı.
  • CURLINFO_SIZE_DOWNLOAD - İndirilen toplam bayt sayısı.
  • CURLINFO_SPEED_DOWNLOAD - Ortalama indirme hızı.
  • CURLINFO_SPEED_UPLOAD - Ortalama karşıya yükleme hızı.
  • CURLINFO_HEADER_SIZE - Alınan tüm başlıkların toplam boyutu.
  • CURLINFO_HEADER_OUT - Gönderilen istek dizgesi.
  • CURLINFO_REQUEST_SIZE - Toplam istek boyutu; şimdilik sadece HTTP istekleri için.
  • CURLINFO_SSL_VERIFYRESULT - CURLOPT_SSL_VERIFYPEER atanarak istenen SSL sertifikalarının doğrulanmasının sonucu.
  • CURLINFO_CONTENT_LENGTH_DOWNLOAD - Content-Length: başlığından okunan indirilen içerik uzunluğu.
  • CURLINFO_CONTENT_LENGTH_UPLOAD - Belirtilen karşıya yükleme boyutu.
  • CURLINFO_CONTENT_TYPE - İndirilen nesnenin Content-Type: başlığının değeri; NULL değeri sunucunun geçerli bir Content-Type: başlığı göndermediği anlamına gelir.

Dönen Değerler

seçenek belirtilirse, seçeneğin değeri bir dizge olarak döndürülür. Aksi takdirde aşağıdaki elemanları içeren bir dizi döner:

  • "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"

Sürüm Bilgisi

Sürüm: Açıklama
5.1.3 CURLINFO_HEADER_OUT devreye girdi.

Örnekler

Örnek 1 - curl_getinfo() örneği

<?php
// Yeni bir tanıtıcı oluşturalım
$ch curl_init('http://www.yahoo.com/');

// Çalıştıralım
curl_exec($ch);

// Bir hata var mı bakalım
if(!curl_errno($ch))
{
 
$info curl_getinfo($ch);

 echo 
'İsteğin' $info['url'] . ' adresine gönderilmesi ' .
       
$info['total_time'] . ' saniye sürdü';
}

// Tanıtıcıyı kapatalım
curl_close($ch);
?>

add a note add a note

User Contributed Notes 9 notes

up
11
ssttoo at hotmail dot com
10 years ago
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']];
    }

}
?>
up
5
nemetral
6 years ago
Just a quick note: if you want to use curl_getinfo() with option CURLINFO_HEADER_OUT in order to debug your cURL request, you must add curl_setopt($handle, CURLINFO_HEADER_OUT, true); first while specifying the options.
up
4
Mark Evers
6 years ago
There is a constant missing from that list.  CURLINFO_REDIRECT_COUNT will give you the number of redirects it went through if CURLOPT_FOLLOWLOCATION was set.
up
1
Anonymous
4 years ago
The main doc neglects to mention that when the CURLINFO_HEADER_OUT option is set the array returned by this function will included a new property, request_header, that is a string of the headers sent in the request.
up
0
bg at enativ dot com
5 months ago
curl_getinfo($ch) will also return 'redirect_url' if there is one (even if CURLOPT_FOLLOWLOCATION set to false).
I don't know why it's not in the doc..
up
-1
Piker
3 months ago
Example 1 should use "if(curl_errno($ch))" not "if(!curl_errno($ch))"
up
-1
vince
3 years ago
CURLINFO_HTTP_CODE does not return a string, as the docs say, but rather an integer.

<?php
    $c
= curl_init('http://www.example.com/');
    if(
curl_getinfo($c, CURLINFO_HTTP_CODE) === '200') echo "CURLINFO_HTTP_CODE returns a string.";
    if(
curl_getinfo($c, CURLINFO_HTTP_CODE) === 200) echo "CURLINFO_HTTP_CODE returns an integer.";
   
curl_close($c);
?>

returns

"CURLINFO_HTTP_CODE returns an integer."
up
-1
nikita dot bulatenko at gmail dot com
1 year ago
CURLINFO_SSL_VERIFYRESULT error codes:
0: ok the operation was successful.
2 : unable to get issuer certificate
3: unable to get certificate CRL
4: unable to decrypt certificate's signature
5: unable to decrypt CRL's signature
6: unable to decode issuer public key
7: certificate signature failure
8: CRL signature failure
9: certificate is not yet valid
10: certificate has expired
11: CRL is not yet valid
12:CRL has expired
13: format error in certificate's notBefore field
14: format error in certificate's notAfter field
15: format error in CRL's lastUpdate field
16: format error in CRL's nextUpdate field
17: out of memory
18: self signed certificate
19: self signed certificate in certificate chain
20: unable to get local issuer certificate
21:unable to verify the first certificate
22: certificate chain too long
23: certificate revoked
24: invalid CA certificate
25: path length constraint exceeded
26: unsupported certificate purpose
27: certificate not trusted
28: certificate rejected
29: subject issuer mismatch
30: authority and subject key identifier mismatch
31: authority and issuer serial number mismatch
32: key usage does not include certificate signing
50: application verification failure
details at http://www.openssl.org/docs/apps/verify.html#VERIFY_OPERATION
up
-2
luiheidsgoeroe at hotmail dot com
6 years ago
Keep in mind that for CURLOPT_RETURNTRANSFER it has to be set with curl_setopt() before execution:

This doesn't work:
<?php
$ch
= curl_init();
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_exec($ch);
var_dump(curl_getinfo($ch,CURLINFO_HEADER_OUT));
?>

This works:
<?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));
?>
To Top