curl_getinfo

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

curl_getinfoInformationen zu einem bestimmten Transfer abfragen

Beschreibung

curl_getinfo ( resource $ch [, int $opt ] ) : mixed

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 - Der letzte Response-Code. Von PHP 5.5.0 und cURL 7.10.8 an ist dies ein veralteter Alias von CURLINFO_RESPONSE_CODE
  • CURLINFO_FILETIME - Letzte Änderung des Dokuments, bei aktivierter CURLOPT_FILETIME Option; 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_COUNT - Anzahl der Weiterleitungen, bei aktivierter CURLOPT_FOLLOWLOCATION Option
  • CURLINFO_REDIRECT_TIME - Zeit in Sekunden, die von allen Umleitungsschritten beansprucht wird, bevor der eigentliche Transfer beginnt
  • CURLINFO_REDIRECT_URL - Bei deaktivierter CURLOPT_FOLLOWLOCATION: die Weiterleitungs-URL, die in der letzten Transaktion gefunden wurde, und die als nächstes manuell angefordert werden sollte. Bei aktivierter CURLOPT_FOLLOWLOCATION Option ist dies immer leer. Die Weiterleitungs-URL ist in diesem Fall in CURLINFO_EFFECTIVE_URL verfügbar
  • CURLINFO_PRIMARY_IP - Die IP-Adresse der jüngsten Verbindung
  • CURLINFO_PRIMARY_PORT - Ziel-Port der jüngsten Verbindung
  • CURLINFO_LOCAL_IP - lokale (Quell-) IP-Adresse der jüngsten Verbindung
  • CURLINFO_LOCAL_PORT - lokaler (Quell-) Port der jüngsten Verbindung
  • CURLINFO_SIZE_UPLOAD - Anzahl der gesendeten Bytes
  • CURLINFO_SIZE_DOWNLOAD - Anzahl der empfangenen Bytes
  • CURLINFO_SPEED_DOWNLOAD - Durchschnittliche Download-Geschwindigkeit
  • CURLINFO_SPEED_UPLOAD - Durchschnittliche Upload-Geschwindigkeit
  • CURLINFO_HEADER_SIZE - Gesamtgröße aller empfangenen Header
  • CURLINFO_HEADER_OUT - Der gesendete Request. Damit dies funktioniert, muss die CURLINFO_HEADER_OUT Option durch Aufruf von curl_setopt() zum Handle hinzugefügt werden
  • 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 - Content-Type: des angeforderten Dokuments. NULL zeigt an, dass der Server keinen gültigen Content-Type: Header gesendet hat
  • CURLINFO_PRIVATE - Private Daten, die mit diesem cURL Handle zugehörig sind, und die zuvor mit der CURLOPT_PRIVATE Option von curl_setopt() gesetzt wurden
  • CURLINFO_RESPONSE_CODE - Der letzte Response-Code
  • CURLINFO_HTTP_CONNECTCODE - Der CONNECT Response-Code
  • CURLINFO_HTTPAUTH_AVAIL - Eine Bitmaske, die die verfügbaren Authentifikationsmethode(n) gemäß der vorherigen Response anzeigt
  • CURLINFO_PROXYAUTH_AVAIL - Eine Bitmaske, die die verfügbaren Proxy-Authentifikationsmethode(n) gemäß der vorherigen Response anzeigt
  • CURLINFO_OS_ERRNO - Errno eines Verbindungsfehlers. Die Zahl ist OS- und systemabhängig.
  • CURLINFO_NUM_CONNECTS - Die Anzahl der Verbindungen, die cURL erzeugen musste, um die vorherigen Übertragung durchzuführen
  • CURLINFO_SSL_ENGINES - Die unterstützten OpenSSL Crypto-Engines
  • CURLINFO_COOKIELIST - Alle bekannten Cookies
  • CURLINFO_FTP_ENTRY_PATH - Entry-Pfad des FTP-Server
  • CURLINFO_APPCONNECT_TIME - Die Zeitdauer in Sekunden, die bis zum SSL/SSH-Verbindungsaufbau/Handshake zum entfernten Server verstrichen ist
  • CURLINFO_CERTINFO - Die TLS Zertifikatskette
  • CURLINFO_CONDITION_UNMET - Info über eine nicht eingehaltene Zeitbedingung
  • CURLINFO_RTSP_CLIENT_CSEQ - Die nächste CSeq des RTSP-Clients
  • CURLINFO_RTSP_CSEQ_RECV - Die zuletzt empfangene CSeq
  • CURLINFO_RTSP_SERVER_CSEQ - Die nächste CSeq des RTSP-Servers
  • CURLINFO_RTSP_SESSION_ID - Die RTSP Session-ID

Rückgabewerte

Wird der Parameter opt angegeben, wird der entsprechende Wert zurückgegeben. Andernfalls liefert die Funktion ein assoziatives Array mit den folgenden Elementen zurück (analog dem Parameter opt), oder FALSE im Fehlerfall:

  • "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"
  • "certinfo"
  • "primary_ip"
  • "primary_port"
  • "local_ip"
  • "local_port"
  • "redirect_url"
  • "request_header" (Dies ist nur gesetzt, wenn die CURLINFO_HEADER_OUT durch einen vorherigen Aufruf von curl_setopt() gesetzt wurde)
Es ist zu beachten, dass private Daten nicht im assoziativen Array enthalten sind, sondern individuell durch CURLINFO_PRIVATE Option abgerufen werden müssen.

Changelog

Version Beschreibung
5.5.0 CURLINFO_RESPONSE_CODE, CURLINFO_HTTP_CONNECTCODE, CURLINFO_HTTPAUTH_AVAIL, CURLINFO_PROXYAUTH_AVAIL, CURLINFO_OS_ERRNO, CURLINFO_NUM_CONNECTS, CURLINFO_SSL_ENGINES, CURLINFO_COOKIELIST, CURLINFO_FTP_ENTRY_PATH, CURLINFO_APPCONNECT_TIME, CURLINFO_CONDITION_UNMET, CURLINFO_RTSP_CLIENT_CSEQ, CURLINFO_RTSP_CSEQ_RECV, CURLINFO_RTSP_SERVER_CSEQ und CURLINFO_RTSP_SESSION_ID eingeführt.
5.4.7 CURLINFO_PRIMARY_IP, CURLINFO_PRIMARY_PORT, CURLINFO_LOCAL_IP und CURLINFO_LOCAL_PORT eingeführt.
5.3.7 CURLINFO_REDIRECT_URL eingeführt.
5.3.0 CURLINFO_CERTINFO eingeführt.
5.2.4 CURLINFO_PRIVATE eingeführt.
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.example.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);
?>

Beispiel #2 curl_getinfo()-Beispiel mit opt Parameter

<?php
// Eine cURL-Resource erstellen
$ch curl_init('http://www.example.com/');

// ausführen
curl_exec($ch);

// HTTP-Status-Code prüfen
if (!curl_errno($ch)) {
  switch (
$http_code curl_getinfo($chCURLINFO_HTTP_CODE)) {
    case 
200:  # OK
      
break;
    default:
      echo 
'Unerwarter HTTP-Code: '$http_code"\n";
  }
}

// Resource schliessen
curl_close($ch);
?>

Anmerkungen

Hinweis:

Informationen, die mit dieser Funktion gesammelt wurden, bleiben erhalten, wenn das Handle wiederverwendet wird. Das bedeutet, dass außer wenn eine Statistik von dieser Funktion intern überschrieben wird, die vorherige Info zurück gebeben wird.