curl_setopt -- Modifie une option de transfert CURL
Description
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
ou égaux à 400. 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 faites 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.
Exemple 1.
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); ?>