(PHP 4 >= 4.0.4, PHP 5, PHP 7)
curl_getinfo — Lit les informations détaillant un transfert cURL
curl_getinfo() lit les informations
concernant le transfert ch
.
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
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 :
CURLINFO_HEADER_OUT
est utilisé via un appel à curl_setopt())
CURLINFO_PRIVATE
.
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 .
|
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($ch, CURLINFO_HTTP_CODE)) {
case 200: # OK
break;
default:
echo 'Unexpected HTTP code: ', $http_code, "\n";
}
}
// Close handle
curl_close($ch);
?>
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.