6.5 CURL
6 Référence des fonctions
Manuel PHP
. Introduction . Pré-requis . Installation . Constantes pré-définies . Exemples . curl_close . curl_copy_handle . curl_errno . curl_error . curl_exec . curl_getinfo . curl_init . curl_multi_add_handle . curl_multi_close . curl_multi_exec . curl_multi_getcontent . curl_multi_info_read . curl_multi_init . curl_multi_remove_handle . curl_multi_select ->curl_setopt . curl_version
|
6.5.21 curl_setopt()Modifie une option de transfert CURL[ Exemples avec curl_setopt ] PHP 4 >= 4.0.2, PHP 5
bool
curl_setopt (
resource
ch
,
int
option
,
mixed
value
)
curl_setopt
fixe les options de transfert de la
session CURL identifiée par
ch
.
option
est le nom de l'option à fixer,
et
value
est sa valeur.
value
doit être un booléen pour les valeurs suivantes
du paramètres
option
:
Option |
Définissez le paramètre
value
à |
Notes |
CURLOPT_AUTOREFERER
|
TRUE
pour fixer automatiquement le champ
Referer:
dans les requêtes où une redirection
Location:
suit.
|
Disponible depuis PHP 5.1.0.
|
CURLOPT_BINARYTRANSFER
|
TRUE
pour retourner la ligne affichée lorsque
CURLOPT_RETURNTRANSFER
est utilisé.
|
|
CURLOPT_COOKIESESSION
|
TRUE
pour marquer ceci comme un nouveau cookie "session". Cela
forcera libcurl à ignorer tous les cookies qui sont prêts à être
chargés qui sont des "cookies de session" provenant des sessions
antérieures. Par défaut, libcurl enregistre et charge toujours tous
les cookies, indépendamment s'ils sont des cookies de session ou
pas. Les cookies de session sont des cookies sans date d'expiration
et existeront que pour cette "session" seulement.
|
Disponible depuis PHP 5.1.0.
|
CURLOPT_CRLF
|
TRUE
pour convertir les nouvelles lignes Unix en nouvelles lignes CRLF pendant le transfert.
|
|
CURLOPT_DNS_USE_GLOBAL_CACHE
|
TRUE
pour utiliser un cache DNS global. Cette option n'est pas thread-safe
et est activée par défaut.
|
|
CURLOPT_FAILONERROR
|
TRUE
pour que PHP traite silencieusement les codes HTTP supérieurs
à 300. Le comportement par défaut est de retourner la
page normalement, en ignorant ce code.
|
|
CURLOPT_FILETIME
|
TRUE
pour tenter de récupérer la date de modification
du document distant. Vous pouvez également retrouver cette valeur en utilisant
l'option
CURLINFO_FILETIME
avec
curl_getinfo
.
|
|
CURLOPT_FOLLOWLOCATION
|
TRUE
pour suivre toutes les en-têtes
"Location: "
que le
serveur envoie dans les en-têtes HTTP (notez que cette fonction
est récursive et que PHP suivra toutes les en-têtes
"Location: "
qu'il trouvera à moins que
CURLOPT_MAXREDIRS
ne soit définie).
|
|
CURLOPT_FORBID_REUSE
|
TRUE
pour forcer la connexion à se fermer
explicitement lorsque le processus est terminé et ne sera pas mise en cache pour être
réutilisée.
|
|
CURLOPT_FRESH_CONNECT
|
TRUE
pour forcer à utiliser une
nouvelle connexion au lieu de celle en cache.
|
|
CURLOPT_FTP_USE_EPRT
|
TRUE
pour utiliser EPRT (et LPRT)
lors de l'activation des téléchargements FTP.
Utilisez
FALSE
pour désactiver EPRT et LPRT et ainsi, n'utiliser que PORT.
|
Ajouté en PHP 5.0.0.
|
CURLOPT_FTP_USE_EPSV
|
TRUE
pour tenter tout d'abord une commande
EPSV pour les transferts FTP avant de revenir à une commande PASV. Définissez cette
option à
FALSE
pour désactiver EPSV.
|
|
CURLOPT_FTPAPPEND
|
TRUE
pour que PHP concatène le fichier distant, plutôt que de
l'écraser.
|
|
CURLOPT_FTPASCII
|
Un alias de
CURLOPT_TRANSFERTEXT
. Utilisez celui-là à la place.
|
|
CURLOPT_FTPLISTONLY
|
TRUE
pour ne lister que les noms d'un dossier FTP.
directory.
|
|
CURLOPT_HEADER
|
TRUE
pour inclure l'en-tête dans la valeur de retour.
|
|
CURLOPT_HTTPGET
|
TRUE
pour réinitialiser la méthode de requête HTTP
à POST. Sachant que GET est la valeur par défaut, cela n'est uniquement nécessaire
que si la méthode de requête a été changée.
|
|
CURLOPT_HTTPPROXYTUNNEL
|
TRUE
pour effectuer un tunnel à travers un proxy HTTP.
|
|
CURLOPT_MUTE
|
TRUE
pour que PHP soit totalement silencieux concernant toutes les fonctions
CURL.
|
|
CURLOPT_NETRC
|
TRUE
pour que PHP analyse votre fichier
~./netrc
et utilise votre nom de compte et mot de passe sur le site distant
que vous souhaitez contacter.
|
|
CURLOPT_NOBODY
|
TRUE
pour que le corps du transfert ne soit pas inclus dans la valeur de retour.
|
|
CURLOPT_NOPROGRESS
|
TRUE
pour désactiver la barre de progression des transferts CURL.
transfers.
Note |
PHP choisit automatiquement une valeur non nulle. Ne changez cette valeur
que le temps du débogage.
|
|
|
CURLOPT_NOSIGNAL
|
TRUE
pour ignorer toutes les fonctions
CURL qui cause l'envoi d'un signal au processus PHP. Activé par défaut dans
les SAPIs multi-threadés, les options de timeout peut toujours être utilisées.
|
Ajouté dans CURL 7.10 et PHP 5.0.0.
|
CURLOPT_POST
|
TRUE
pour que PHP fasse un HTTP POST. Un POST est un encodage normal
"application/x-www-from-urlencoded", utilisé couramment par les formulaires
HTML.
|
|
CURLOPT_PUT
|
TRUE
pour que le chargement se fasse par HTTP PUT. Le fichier à
charger doit être fixé avec les options
CURLOPT_INFILE
et
CURLOPT_INFILESIZE
.
|
|
CURLOPT_RETURNTRANSFER
|
TRUE
retourne directement le transfert sous forme de chaîne
de la valeur retournée par
curl_exec
au lieu
de l'afficher directement.
|
|
CURLOPT_SSL_VERIFYPEER
|
FALSE
pour arrêter CURL de vérifier le certificat.
Les certificats alternatifs peuvent être spécifiés avec l'option
CURLOPT_CAINFO
(ajouté dans CURL 7.9.8) ou
un répertoire de certificat peut être spécifié avec l'option
CURLOPT_CAPATH
. Tout comme CURL 7.10, CURL installe
un paquet par défaut.
CURLOPT_SSL_VERIFYHOST
doit aussi être positionnée à 1 ou 0 si
CURLOPT_SSL_VERIFYPEER
est désactivée (par défaut à 2).
|
TRUE
par défaut dpuis CURL 7.10. Paquet installé par défaut depuis CURL 7.10.
|
CURLOPT_TRANSFERTEXT
|
TRUE
pour utiliser le mode ASCII
pour les transferts FTP. Pour LDAP, il récupère les données en texte plein au lieu
d'Html. Sur les systèmes WIndows,
STDOUT
ne sera pas définie
en mode binaire.
|
|
CURLOPT_UNRESTRICTED_AUTH
|
TRUE
pour garder l'envoi du nom
de l'utilisateur ainsi que le mot de passe lorsque l'on suit les chemins
(en utilisant
CURLOPT_FOLLOWLOCATION
),
même si le nom d'hôte change.
|
Ajouté en PHP 5.0.0.
|
CURLOPT_UPLOAD
|
TRUE
pour que PHP prépare un chargement.
|
|
CURLOPT_VERBOSE
|
TRUE
pour afficher tous les événements.
Ecrit la sortie sur stderr ou dans le fichier spécifié en utilisant
CURLOPT_STDERR
.
|
|
value
doit être un entier pour les valeurs suivantes
du paramètres
option
:
Option |
Définissez le paramètre
value
à |
Notes |
CURLOPT_BUFFERSIZE
|
La taille du buffer à utiliser pour chaque lecture.
Cependant, il n'y a aucune garantie que cette requête soit accomplie.
|
Ajouté en CURL 7.10 et PHP 5.0.0.
|
CURLOPT_CLOSEPOLICY
|
Soit
CURLCLOSEPOLICY_LEAST_RECENTLY_USED
, soit
CURLCLOSEPOLICY_OLDEST
.
Il y a trois autres constantes
CURLCLOSEPOLICY_
mais CURL ne les supporte pas encore.
|
|
CURLOPT_CONNECTTIMEOUT
|
Le nombre de secondes à attendre durant
la tentative de connexion. Utilisez une valeur de
0
pour attendre indéfiniment.
|
|
CURLOPT_DNS_CACHE_TIMEOUT
|
Le temps en seconde que CURL doit
conserver les entrées DNS en mémoire. Cette option est définie à 120 (2minutes)
par défaut.
|
|
CURLOPT_FTPSSLAUTH
|
La méthode d'identification FTP, lorsqu'elle est activée :
CURLFTPAUTH_SSL
(tente SSL en premier),
CURLFTPAUTH_TLS
(tente TLS en premier) ou
CURLFTPAUTH_DEFAULT
(laisse CURL décider).
|
Ajouté en CURL 7.12.2 et PHP 5.1.0.
|
CURLOPT_HTTP_VERSION
|
CURL_HTTP_VERSION_NONE
(défaut, laisse CURL
décider la version à utiliser),
CURL_HTTP_VERSION_1_0
(force HTTP/1.0),
ou
CURL_HTTP_VERSION_1_1
(force HTTP/1.1).
|
|
CURLOPT_HTTPAUTH
|
La méthode d'identification HTTP à utiliser. Ces options sont :
CURLAUTH_BASIC
,
CURLAUTH_DIGEST
,
CURLAUTH_GSSNEGOTIATE
,
CURLAUTH_NTLM
,
CURLAUTH_ANY
et
CURLAUTH_ANYSAFE
.
Vous pouvez utiliser le séparateur
|
ou un opérateur
pour combiner plus d'une méthode. Si vous faîtes cela, CURL interrogera
le serveur pour voir quelles sont les méthodes supportées et prendra
la meilleur.
CURLAUTH_ANY
est un alias pour
CURLAUTH_BASIC | CURLAUTH_DIGEST | CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLM
.
CURLAUTH_ANYSAFE
est un alias pour
CURLAUTH_DIGEST | CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLM
.
|
Ajouté en PHP 5.0.0.
|
CURLOPT_INFILESIZE
|
La taille attendue, en octets, du fichier lors du téléchargement d'un fichier
depuis un site distant.
|
|
CURLOPT_LOW_SPEED_LIMIT
|
La vitesse de transfert minimale en octets par secondes en
dessous de laquelle, et pendant
CURLOPT_LOW_SPEED_TIME
secondes, PHP considérera qu'elle est trop lente, et
annulera le transfert.
|
|
CURLOPT_LOW_SPEED_TIME
|
Le temps en secondes, qui, si la vitesse de
transfert reste en dessous de
CURLOPT_LOW_SPEED_LIMIT
,
PHP considèrera que la connexion est trop lente, et l'annulera.
|
|
CURLOPT_MAXCONNECTS
|
Le nombre maximal de connexions persistantes autorisées.
Lorsque la limite est atteinte, l'option
CURLOPT_CLOSEPOLICY
est utilisé pour afficher les connexions fermées.
|
|
CURLOPT_MAXREDIRS
|
Le nombre maximal de redirections HTTP à suivre.
Utilisez cette option avec l'option
CURLOPT_FOLLOWLOCATION
.
|
|
CURLOPT_PORT
|
Le numéro du port de connexion, à la place
de la valeur par défaut utilisée par le protocole.
|
|
CURLOPT_PROXYAUTH
|
La méthode d'identification HTTP à utiliser pour la connexion à un proxy.
Utilisez la même méthode que celle décrite dans
CURLOPT_HTTPAUTH
.
Pour une identification avec un proxy, seuls
CURLAUTH_BASIC
et
CURLAUTH_NTLM
sont actuellement supportés.
|
Ajouté en CURL 7.10.7 et PHP 5.1.0.
|
CURLOPT_PROXYPORT
|
Le numéro du port du proxy à utiliser
pour la connexion. Ce numéro de port peut également être défini
dans l'option
CURLOPT_PROXY
.
|
Ajouté en PHP 5.0.0.
|
CURLOPT_PROXYTYPE
|
Soit
CURLPROXY_HTTP
(par défaut), soit
CURLPROXY_SOCKS5
.
|
Ajouté en CURL 7.10 et PHP 5.0.0.
|
CURLOPT_RESUME_FROM
|
L'offset, en octets, à partir duquel vous voulez
commencer le transfert.
|
|
CURLOPT_SSL_VERIFYHOST
|
1 pour vérifier l'existence d'un nom commun dans le certificat
SSL. 2 pour vérifier l'existence d'un nom commun et vérifier qu'il
correspond avec le nom d'hôte fourni.
|
|
CURLOPT_SSLVERSION
|
La version de SSL (2 ou 3) à utiliser. Par
défaut, PHP essayera de le déterminer
lui-même, bien que dans certains cas, il vous faudra
le faire manuellement.
|
|
CURLOPT_TIMECONDITION
|
Comment
CURLOPT_TIMEVALUE
est traité. Utilisez
CURL_TIMECOND_IFMODSINCE
pour retourner la page uniquement si elle a été modifiée depuis le temps spécifié
par
CURLOPT_TIMEVALUE
. Si elle n'a pas été modifiée,
un en-tête HTTP
"304 Not Modified"
sera retourné en
supposant que
CURLOPT_HEADER
vaut
TRUE
.
Utilisez
CURL_TIMECOND_ISUNMODSINCE
pour faire
l'inverse.
CURL_TIMECOND_IFMODSINCE
est par défaut.
|
Ajouté en PHP 5.1.0.
|
CURLOPT_TIMEOUT
|
Le temps maximum d'exécution de la fonction CURL.
|
|
CURLOPT_TIMEVALUE
|
Le temps en secondes depuis le 1er janvier 1970.
Cette valeur sera utilisée comme spécifié dans
l'option
CURLOPT_TIMECONDITION
. Par défaut,
CURL_TIMECOND_IFMODSINCE
sera utilisée.
|
|
value
doit être une chaîne pour les valeurs suivantes
du paramètres
option
:
Option |
Définissez le paramètre
value
à |
Notes |
CURLOPT_CAINFO
|
Le nom d'un fichier contenant un ou plusieurs certificats pour vérifier la concordance.
Cela n'a de sens que si vous l'utilisez en combinaison de l'option
CURLOPT_SSL_VERIFYPEER
.
|
|
CURLOPT_CAPATH
|
Un dossier qui contient les certificats CA. Utilisez cette option
avec l'option
CURLOPT_SSL_VERIFYPEER
.
|
|
CURLOPT_COOKIE
|
Le contenu de l'en-tête
"Set-Cookie: "
, à
transmettre dans l'en-tête HTTP.
|
|
CURLOPT_COOKIEFILE
|
Le nom du fichier contenant les
données de cookie. Le fichier de cookie peut être au
format Netscape, ou simplement des en-têtes HTTP écrits
dans un fichier.
|
|
CURLOPT_COOKIEJAR
|
Le nom de fichier pour y sauvegarder tous les cookies internes lorsque
la connexion se ferme.
|
|
CURLOPT_CUSTOMREQUEST
|
Une méthode de requête qui sera utilisée à la place de
"GET"
ou
"HEAD"
lors des requêtes HTTP. Cette commande est pratique pour
effectuer un
"DELETE"
ou une autre commande HTTP exotique.
Les valeurs valides sont
"GET"
,
"POST"
,
"CONNECT"
et plus ;
i.e. n'entrez pas une requête HTTP ici. Pour le moment,
entrez
"GET /index.html HTTP/1.0\r\n\r\n"
serait incorrect.
Note |
N'utilisez pas cette commande sans vous assurer que le serveur l'accepte.
|
|
|
CURLOPT_EGBSOCKET
|
Comme
CURLOPT_RANDOM_FILE
excepté que vous passez
une chaîne qui contient un nom de fichier vers le socket
Entropy Gathering Daemon
.
|
|
CURLOPT_ENCODING
|
Le contenu des en-têtes
"Accept-Encoding: "
et active le décodage de la réponse. Les encodages supportés sont
"identity"
,
"deflate"
et
"gzip"
. Si une chaîne vide
""
est utilisé,
un en-tête contenant tous les types d'encodage supportés est envoyé.
|
Ajouté en CURL 7.10.
|
CURLOPT_FTPPORT
|
La valeur qui sera utilisée pour récupérer l'adresse IP utilisée
pour l'instruction FTP "PORT". L'instruction POST indique au serveur
distant de se connecter à cette adresse IP. La chaîne peut
être une adresse IP, un nom d'hôte, un nom d'interface
réseau (sous UNIX), ou juste '-', pour utiliser les IP par
défaut du système.
|
|
CURLOPT_INTERFACE
|
Le nom de l'interface à utiliser.
Cela peut être le nom d'une interface, une adresse IP ou
encore le nom de l'hôte.
|
|
CURLOPT_KRB4LEVEL
|
Le degré de sécurité
KRB4 (Kerberos 4). Chacune des valeurs (dans l'ordre du plus petit au plus grand)
suivantes sont valides :
"clear"
,
"safe"
,
"confidential"
,
"private".
.
Si la chaîne passée ne correspond pas à une de ces valeurs, la valeur
"private"
sera définie. Positionner cette valeur à
NULL
revient à désactiver
la sécurité KRB4. Actuellement, la sécurité KRB4 fonctionne uniquement
avec les transaction FTP.
|
|
CURLOPT_POSTFIELDS
|
Toutes les données à passer lors d'une opération de HTTP POST.
|
|
CURLOPT_PROXY
|
Le nom du proxy HTTP au tunnel qui le demande.
|
|
CURLOPT_PROXYUSERPWD
|
Un nom d'utilisateur et un mot de passe formattés sous la forme
"[username]:[password]"
à utiliser
pour la connexion avec le proxy.
|
|
CURLOPT_RANDOM_FILE
|
Un nom de fichier à utiliser pour interroger le générateur de nombre aléatoire pour SSL.
|
|
CURLOPT_RANGE
|
la plage de valeurs à récupérer sous la forme
"X-Y"
, où les
valeurs de X ou Y peuvent être omises. Le transfert HTTP
supporte aussi plusieurs intervalles, séparés par
des virgules :
"X-Y,N-M"
.
|
|
CURLOPT_REFERER
|
Le contenu de l'en-tête
"Referer: "
à utiliser
dans une requête HTTP.
|
|
CURLOPT_SSL_CIPHER_LIST
|
Une liste de ciphers à utiliser avec SSL. Par exemple,
RC4-SHA
et
TLSv1
sont des listes
valides de cipher.
|
|
CURLOPT_SSLCERT
|
Le nom de fichier du certificat, au format PEM.
|
|
CURLOPT_SSLCERTPASSWD
|
Le mot de passe nécessaire
pour utiliser le certificat
CURLOPT_SSLCERT
.
|
|
CURLOPT_SSLCERTTYPE
|
Le format de votre certificat. Les formats supportés sont
"PEM"
(default),
"DER"
,
et
"ENG"
.
|
Ajouté en CURL 7.9.3 et PHP 5.0.0.
|
CURLOPT_SSLENGINE
|
L'identifiant pour le moteur de cryptage de votre clé privée spécifié dans
CURLOPT_SSLKEY
.
|
|
CURLOPT_SSLENGINE_DEFAULT
|
L'identifiant pour le moteur de cryptage utilisé pour les opérations
de cryptage asymétrique.
|
|
CURLOPT_SSLKEY
|
Un nom de fichier contenant votre clé privée SSL.
|
|
CURLOPT_SSLKEYPASSWD
|
Le mot de passe secret utilisé par votre clé SSL privée spécifié dans
CURLOPT_SSLKEY
.
Note |
Du fait que cette option contient un mot de passe sensible, souvenez-vous
de conserver le script PHP qui le contient en toute sécurité.
|
|
|
CURLOPT_SSLKEYTYPE
|
Le type de votre clé SSL privée spécifié dans
CURLOPT_SSLKEY
.
Les types de clés supportés sont
"PEM"
(défaut),
"DER"
,
et
"ENG"
.
|
|
CURLOPT_URL
|
L'URL àrécupérer.
Vous pouvez aussi choisir cette valeur lors de l'appel à
curl_init
.
|
|
CURLOPT_USERAGENT
|
Le contenu de l'en-tête
"User-Agent: "
à utiliser
dans une requête HTTP.
|
|
CURLOPT_USERPWD
|
Un nom d'utilisateur et un mot de passe formattés sous la forme
"[username]:[password]"
à utiliser pour la connexion.
|
|
value
doit être un tableau pour les valeurs suivantes
du paramètres
option
:
Option |
Définissez le paramètre
value
à |
Notes |
CURLOPT_HTTP200ALIASES
|
Un tableau de réponses HTTP 200 qui sera traité comme réponses valides et
non comme des erreurs.
|
Ajouté en CURL 7.10.3 et PHP 5.0.0.
|
CURLOPT_HTTPHEADER
|
Un tableau de champs d'en-têtes HTTP à définir.
|
|
CURLOPT_POSTQUOTE
|
Un tableau de commandes FTP à exécuter sur le serveur après
que la requête FTP se soit exécutée.
|
|
CURLOPT_QUOTE
|
Un tableau de commande FTP à exécuter sur le serveur avant la requête FTP.
|
|
value
doit être une ressource (utilisant
fopen
, par exemple) pour les valeurs suivantes
du paramètres
option
:
Option |
Définissez le paramètre
value
à |
Notes |
CURLOPT_FILE
|
Le fichier où sera écrit le transfert. Par défaut,
STDOUT
(la fenêtre du navigateur).
|
|
CURLOPT_INFILE
|
Le fichier lu par le transfert lors du chargement.
|
|
CURLOPT_STDERR
|
Un chemin alternatif à utiliser pour afficher les erreurs au lieu de
STDERR
.
|
|
CURLOPT_WRITEHEADER
|
Le fichier où sera écrit les parties d'en-tête du transfert.
|
|
value
doit être une chaîne de caractères qui sera un nom valide
de fonction de callback pour les valeurs suivantes
du paramètres
option
:
Option |
Définissez le paramètre
value
à |
Notes |
CURLOPT_HEADERFUNCTION
|
Le nom d'une fonction de callback où la fonction de callback prend deux paramètres.
Le premier est la ressource CURL, le seond, une chaîne contenant les données de
l'en-tête à écrire. En utilisant cette fonction de callback, il en devient
de votre responsabilité de l'écriture des données de l'en-tête. Retourne le nombre
d'octets écris.
|
|
CURLOPT_PASSWDFUNCTION
|
Le nom d'une fonction de callback où la fonction de callback prend trois paramètres.
Le premier est la ressource CURL, le second, une chaîne contenant un
mot de passe de prompt et le troisième, est la longueur maximale du mot de passe.
Retourne une chaîne contenant le mot de passe.
|
|
CURLOPT_READFUNCTION
|
Le nom d'une fonction de callback où la fonction de callback prend deux paramètres.
Le premier est la ressource CURL et le second, une chaîne contenant
les données à lire. En utilisant cette fonction de callback, il devient
de votre responsabilité de lire les données. Retourne le nombre d'octets lus.
Retourne 0 à un signal
EOF
.
|
|
CURLOPT_WRITEFUNCTION
|
Le nom d'une fonction de callback où la fonction de callback prend deux paramètres.
Le premier est la ressource CURL et le second, une chaîne contenant
les données à écrire. En utilisant cette fonction de callback, il devient
de votre responsabilité d'écrire les données. Doit retourner le nombre exact d'octets écris
ou il échoura.
|
|
Initialisation d'une nouvelle session CURL et recherche d'une page Web |
<?php // Création d'une ressource CURL $ch = curl_init();
// Définition de l'URL et autres options appropriées curl_setopt($ch, CURLOPT_URL, "http://www.example.com/"); curl_setopt($ch, CURLOPT_HEADER, false);
// Récupération de l'URL et passage au navigateur curl_exec($ch);
// Fermeture de la ressource CURL et libération des ressources systèmes curl_close($ch); ?>
|
|