curl_getinfo

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

curl_getinfoLit les informations détaillant un transfert cURL

Description

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

curl_getinfo() lit les informations concernant le transfert ch.

Liste de paramètres

ch

Un gestionnaire cURL retourné par la fonction curl_init().

opt

Ce paramètre peut prendre l'une des valeurs suivantes :

  • CURLINFO_EFFECTIVE_URL : Dernière URL réelle
  • CURLINFO_HTTP_CODE : Le dernier code de réponse. À partir de PHP 5.5.0 et cURL 7.10.8, ceci est un alias hérité de CURLINFO_RESPONSE_CODE
  • CURLINFO_FILETIME : Date distante du document récupéré, avec CURLOPT_FILETIME activé ; si -1 est retourné la date du document distant est inconnue.
  • CURLINFO_TOTAL_TIME : Durée de la transaction en secondes pour le dernier transfert
  • CURLINFO_NAMELOOKUP_TIME : Durée de résolution du nom de domaine en secondes
  • CURLINFO_CONNECT_TIME : Durée d'établissement de la connexion en secondes
  • CURLINFO_PRETRANSFER_TIME : Durée en secondes, entre le début de la transaction et de début du transfert de fichiers
  • CURLINFO_STARTTRANSFER_TIME : Durée en secondes jusqu'à ce que le premier octet soit sur le point d'être transféré
  • CURLINFO_REDIRECT_COUNT : Nombre de redirections, avec l'option CURLOPT_FOLLOWLOCATION activée
  • CURLINFO_REDIRECT_TIME : Durée en secondes de toutes les étapes de redirection avant que la transaction finale ne soit débutée, avec l'option CURLOPT_FOLLOWLOCATION activée
  • CURLINFO_REDIRECT_URL - Avec l'option CURLOPT_FOLLOWLOCATION désactivée : URL de redirection trouvée dans la dernière transaction, qui devra être interrogé manuellement par la suite. Si l'option CURLOPT_FOLLOWLOCATION est activée : cette valeur est vide. Dans ce cas, l'url de redirection est disponible dans CURLINFO_EFFECTIVE_URL
  • CURLINFO_PRIMARY_IP - Adresse IP de la plus récente connexion
  • CURLINFO_PRIMARY_PORT - Port de destination de la plus récente connexion
  • CURLINFO_LOCAL_IP - Adresse IP locale (source) de la plus récente connexion
  • CURLINFO_LOCAL_PORT - Port local (source) de la plus récente connexion
  • CURLINFO_SIZE_UPLOAD : Nombre total d'octets envoyés
  • CURLINFO_SIZE_DOWNLOAD : Nombre total d'octets téléchargés
  • CURLINFO_SPEED_DOWNLOAD : Vitesse moyenne de téléchargement
  • CURLINFO_SPEED_UPLOAD : Vitesse moyenne d'envoi
  • CURLINFO_HEADER_SIZE : Taille des en-têtes reçus
  • CURLINFO_HEADER_OUT : La chaîne de requête envoyée. Pour que cela fonctionne, appelez curl_setopt() avec l'option CURLINFO_HEADER_OUT.
  • CURLINFO_REQUEST_SIZE : Taille totale des requêtes envoyées. Actuellement, uniquement pour les requêtes HTTP
  • CURLINFO_SSL_VERIFYRESULT : Résultat de la vérification de la certification SSL demandée par CURLOPT_SSL_VERIFYPEER
  • CURLINFO_CONTENT_LENGTH_DOWNLOAD : Taille du corps du téléchargement, lu dans l'en-tête Content-Length:
  • CURLINFO_CONTENT_LENGTH_UPLOAD : Taille spécifiée de l'envoi.
  • CURLINFO_CONTENT_TYPE : Content-Type: du document demandé. NULL indique que le serveur n'a pas envoyé d'en-tête Content-Type:
  • CURLINFO_PRIVATE - Données privées associées avec le gestionnaire cURL, précédement défini avec l'option CURLOPT_PRIVATE de la fonction curl_setopt()
  • CURLINFO_RESPONSE_CODE - Le dernier code de réponse
  • CURLINFO_HTTP_CONNECTCODE - Le code réponse CONNECT
  • CURLINFO_HTTPAUTH_AVAIL - Masque binaire indiquant la(/les) méthode(s) d'authentification disponbile en accord avec la réponse précédente
  • CURLINFO_PROXYAUTH_AVAIL - Masque binaire indiquant la(/les) méthode(s) d'authentification proxy disponbile en accord avec la réponse précédente
  • CURLINFO_OS_ERRNO - Errno depuis un échec de connexion. Le numéro est spécifique au système et à l'OP.
  • CURLINFO_NUM_CONNECTS - Nombre de connexion curl a dû créer pour achever le transfert précédent
  • CURLINFO_SSL_ENGINES - Moteur-crypto OpenSSL supporté
  • CURLINFO_COOKIELIST - Tous les cookies connue
  • CURLINFO_FTP_ENTRY_PATH - Chemin d'entrée dans un serveur FTP
  • CURLINFO_APPCONNECT_TIME - Temps en seconde qu'il ait fallu depuis le début jusqu'à ce que la connexion/handshake SSL/SSH à l'hôte distant a été complété.
  • CURLINFO_CERTINFO - Chaîne de certificats TLS
  • CURLINFO_CONDITION_UNMET - Info sur le temps conditionel non satisfait
  • CURLINFO_RTSP_CLIENT_CSEQ - Prochain client RTSP CSeq
  • CURLINFO_RTSP_CSEQ_RECV - Récemment reçu CSeq
  • CURLINFO_RTSP_SERVER_CSEQ - Prochain serveur RTSP CSeq
  • CURLINFO_RTSP_SESSION_ID - ID de session RTSP

Valeurs de retour

Si opt est fourni, la valeur sera retournée. Sinon, ce sera un tableau associatif contenant les éléments suivants (qui correspond à opt), ou FALSE si une erreur survient :

  • "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" (Existe seulement si CURLINFO_HEADER_OUT est utilisé via un appel à curl_setopt())
Veuillez noter que les données privées ne sont pas incluses dans le tableau associatif et doivent être récupérées individuellement avec l'option CURLINFO_PRIVATE.

Historique

Version Description
5.5.0 Ajout de 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 et CURLINFO_RTSP_SESSION_ID.
5.4.7 Ajout de CURLINFO_PRIMARY_IP, CURLINFO_PRIMARY_PORT, CURLINFO_LOCAL_IP et CURLINFO_LOCAL_PORT.
5.3.7 Ajout de CURLINFO_REDIRECT_URL.
5.3.0 Ajout de CURLINFO_CERTINFO.
5.2.4 Ajout de CURLINFO_PRIVATE.
5.1.3 Ajout de CURLINFO_HEADER_OUT.

Exemples

Exemple #1 Exemple avec curl_getinfo()

<?php
// Création d'un gestionnaire cURL
$ch curl_init('http://www.example.com/');

// Exécution
curl_exec($ch);

// Vérification si une erreur est survenue
if(!curl_errno($ch))
{
 
$info curl_getinfo($ch);

 echo 
'La requête a mis ' $info['total_time'] . ' secondes à être envoyée à ' $info['url'];
}

// Fermeture du gestionnaire
curl_close($ch);
?>

Exemple #2 Exemple de curl_getinfo() avec le paramètre opt

<?php
// Création d'un gestionnaire cURL
$ch curl_init('http://www.example.com/');

// Exécution
curl_exec($ch);

// Vérification du code d'état HTTP
if (!curl_errno($ch)) {
  switch (
$http_code curl_getinfo($chCURLINFO_HTTP_CODE)) {
    case 
200:  # OK
      
break;
    default:
      echo 
'Unexpected HTTP code: '$http_code"\n";
  }
}

// Close handle
curl_close($ch);
?>

Notes

Note:

Les informations founies par cette fonction sont conservées si la connexion est réutilisée. La donnée précédemment utilisée est donc retournée à moins que celle-ci ne soit écrasée en interne entre temps.