curl_setopt

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

curl_setoptDéfinit une option de transmission cURL

Description

curl_setopt(CurlHandle$handle, int$option, mixed$value): bool

Définit une option pour le gestionnaire de session cURL fournit.

Liste de paramètres

handle

Un gestionnaire cURL retourné par curl_init().

option

L'option CURLOPT_XXX à définir.

value

La valeur à définir pour option.

value doit être un booléen pour les valeurs suivantes du paramètre option :

OptionDéfinir value àNotes
CURLOPT_AUTOREFERERtrue pour définir automatiquement le champ Referer: dans les requêtes où une redirection Location: suit.
CURLOPT_COOKIESESSIONtrue 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.
CURLOPT_CERTINFOtrue pour sortir les informations de certification SSL vers STDERR pour les transferts sécurisés. Ajouté en cURL version 7.19.1. Nécessite CURLOPT_VERBOSE d'être activé.
CURLOPT_CONNECT_ONLYtrue indique à la bibliothèque d'effectuer toutes les configurations nécessaires à l'authentification et la connexion au proxy, mais ne transfère aucune donnée. Cette option est implémentée pour HTTP, SMTP et POP3. Ajouté en cURL 7.15.2.
CURLOPT_CRLFtrue pour convertir les nouvelles lignes Unix en nouvelles lignes CRLF durant les transferts.
CURLOPT_DISALLOW_USERNAME_IN_URLtrue pour ne pas permettre les URLs qui incluent un nom d'utilisateur. Les noms d'utilisateurs sont autorisé par défaut (0). Ajouté en cURL 7.61.0. Disponible à partir de PHP 7.3.0.
CURLOPT_DNS_SHUFFLE_ADDRESSEStrue pour mélanger l'ordre de toutes les addresses retournées pour qu'elles soit utilisées dans un ordre aléatoire, quand un nom est résolu et que plus d'une addresse IP est retournée. Ceci peut causer d'utiliser IPv4 avant IPv6 ou vice versa. Ajouté en cURL 7.60.0. Disponible à partir de PHP 7.3.0.
CURLOPT_HAPROXYPROTOCOLtrue pour envoyer un en-tête HAProxy PROXY protocol v1 au début de la connexion. L'action par défaut est de ne pas envoyer cet en-tête. Ajouté en cURL 7.60.0. Disponible à partir de PHP 7.3.0.
CURLOPT_SSH_COMPRESSIONtrue pour activer la compression SSH intégré. Ceci est une demande, pas un ordre ; le serveur peut ou ne peut pas le faire. Ajouté en cURL 7.56.0. Disponible à partir de PHP 7.3.0.
CURLOPT_DNS_USE_GLOBAL_CACHEtrue pour utiliser un cache DNS global. Cette option n'est pas compatible avec les threads. Elle est conditionellement activée par défaut si PHP est compilé pour une utilisation non threadé (CLI, FFCGI, Apache2-Prefork, etc.).
CURLOPT_FAILONERRORtrue pour échouer verbalement si le code HTTP retourné est supérieur ou égal à 400. Le comportement par défaut est de retourner la page normalement, en ignorant le code.
CURLOPT_SSL_FALSESTARTtrue pour activer le faux départ TLS. Ajouté en cURL 7.42.0. Disponible à partir de PHP 7.0.7.
CURLOPT_FILETIMEtrue pour tenter de récupérer la date de modification du document distant. Cette valeur peut être récupérée en utilisant l'option CURLINFO_FILETIME avec curl_getinfo().
CURLOPT_FOLLOWLOCATIONtrue pour suivre tous les en-têtes "Location: " que le serveur envoie dans les en-têtes HTTP. Voir aussi CURLOPT_MAXREDIRS.
CURLOPT_FORBID_REUSEtrue pour forcer à fermer explicitement la connexion lorsque le processus est terminé. Elle ne sera donc pas mise en cache pour réutilisation.
CURLOPT_FRESH_CONNECTtrue pour forcer l'utilisation d'une nouvelle connexion au lieu d'une en cache.
CURLOPT_FTP_USE_EPRTtrue pour utiliser EPRT (et LPRT) lors des téléchargements FTP actifs. Utilisez false pour désactiver EPRT et LPRT et ainsi n'utiliser que PORT.
CURLOPT_FTP_USE_EPSVtrue pour tenter tout d'abord une commande EPSV pour les transferts FTP avant de revenir à une commande PASV. Définir à false pour désactiver EPSV.
CURLOPT_FTP_CREATE_MISSING_DIRStrue pour créer les dossiers intermédiaires lorsqu'une opération FTP est demandée sur un chemin qui n'existe pas.
CURLOPT_FTPAPPENDtrue pour que PHP ajoute les informations au fichier distant plutôt que de l'écraser.
CURLOPT_TCP_NODELAYtrue pour désactiver l'algorithme Nagle de TCP, qui tente de réduire le nombre de petits paquets sur le réseau. Disponible pour les versions compilées avec libcurl 7.11.2 ou supérieur.
CURLOPT_FTPASCII Un alias de CURLOPT_TRANSFERTEXT. Utilisez celui-là à la place.
CURLOPT_FTPLISTONLYtrue pour ne lister que les noms dans un dossier FTP.
CURLOPT_HEADERtrue pour inclure l'en-tête dans la valeur de retour.
CURLINFO_HEADER_OUTtrue pour suivre la chaîne de caractères du gestionnaire de requête. Le préfixe CURLINFO_ est intentionnel.
CURLOPT_HTTP09_ALLOWED Si on doit ou non autoriser les réponses HTTP/0.9. Par défaut, vaut false depuis libcurl 7.66.0; Auparavant, vallait true par défaut. Available since PHP 7.3.15 and 7.4.3, respectively, if built against libcurl >= 7.64.0
CURLOPT_HTTPGETtrue pour réinitialiser la méthode de la requête HTTP à GET. Sachant que GET est la valeur par défaut, cela est uniquement nécessaire si la méthode de la requête a été modifiée.
CURLOPT_HTTPPROXYTUNNELtrue pour passer par un proxy HTTP donné.
CURLOPT_HTTP_CONTENT_DECODINGfalse pour récupérer le corps de la réponse HTTP brute. Disponible si compilé contre libcurl >= 7.16.2.
CURLOPT_KEEP_SENDING_ON_ERRORtrue pour continuer d'envoyer le corps de la requête si le code HTTP est supérieur ou égal à 300. La valeur par défaut est d'arrêter l'envoie et de fermer le flux ou connexion. Adapté pour une authentication NTLM manuelle. La plupart des applications n'ont pas besoin de cette option. Disponible à partir de PHP 7.3.0 si compilé contre libcurl >= 7.51.0.
CURLOPT_MUTEtrue pour que PHP soit totalement silencieux concernant toutes les fonctions cURL. Supprimé en cURL 7.15.5 (Utiliser CURLOPT_RETURNTRANSFER à la place)
CURLOPT_NETRCtrue pour analyser le fichier ~./netrc pour trouver un nom d'utilisateur et mot de passe pour le site distant où une connexion est en train d'être établie.
CURLOPT_NOBODYtrue pour exclure le corps de la sortie. La méthode de la requête est alors définie à HEAD. Modifier ceci à false ne modifie pas la méthode en GET.
CURLOPT_NOPROGRESS

true pour désactiver la barre de progression des transferts cURL.

Note:

PHP définit automatiquement cette option à true, ceci devrait être modifié uniquement pour des raisons de déboguage.

CURLOPT_NOSIGNALtrue pour ignorer toutes les fonctions cURL qui causent l'envoi d'un signal au processus PHP. Activée par défaut dans les SAPIs multithreadés afin que les options d'expiration puissent toujours être utilisées. Ajouté dans cURL 7.10.
CURLOPT_PATH_AS_IStrue pour ne pas gérer les séquences point point. Ajouté dans cURL 7.42.0. Disponible à partir de PHP 7.0.7.
CURLOPT_PIPEWAITtrue pour attendre pour le pipelining/multiplexing. Ajouté dans cURL 7.43.0. Disponible à partir de PHP 7.0.7.
CURLOPT_POSTtrue pour que PHP fasse un HTTP POST régulier. Ce POST est le type normal application/x-www-form-urlencoded, utilisé couramment par les formulaires HTML.
CURLOPT_PUTtrue pour HTTP PUT un fichier. Le fichier à téléverser avec PUT doit être définit avec CURLOPT_INFILE et CURLOPT_INFILESIZE.
CURLOPT_RETURNTRANSFERtrue pour retourner le transfert en tant que chaîne de caractères de la valeur retournée par curl_exec() au lieu de l'afficher directement.
CURLOPT_SASL_IRtrue pour permettre d'envoyer la réponse initiale dans le premier paquet. Ajouté dans cURL 7.31.10. Disponible à partir de PHP 7.0.7.
CURLOPT_SSL_ENABLE_ALPNfalse pour désactiver ALPN dans la poignée de main SSL (si le back-end SSL libcurl est compilé pour utiliser le supporte), qui peut être utilisée pour négocier http2. Ajouté dans cURL 7.36.0. Disponible à partir de PHP 7.0.7.
CURLOPT_SSL_ENABLE_NPNfalse pour désactiver NPN dans la poignée de main SSL (si le back-end SSL libcurl est compilé pour utiliser le supporte), qui peut être utilisé pour négocier http2. Ajouté dans cURL 7.36.0. Disponible à partir de PHP 7.0.7.
CURLOPT_SSL_VERIFYPEERfalse pour arrêter cURL de vérifier le certificat du pair. Les certificats alternatifs à vérifier contre peuvent être spécifiés avec l'option CURLOPT_CAINFO ou un répertoire de certificat peut être spécifié avec l'option CURLOPT_CAPATH. true par défaut à partir de cURL 7.10. Paquet installé par défaut à partir de cURL 7.10.
CURLOPT_SSL_VERIFYSTATUStrue pour vérifier l'état du certificat. Ajouté dans cURL 7.41.0. Disponible à partir de PHP 7.0.7.
CURLOPT_PROXY_SSL_VERIFYPEERfalse pour arrêter cURL de vérifié le certificat du homologue. Des certificats alternatifs à vérifier contre peuvent être définie avec l'option CURLOPT_CAINFO ou un dossier de certificat peut être définie avec l'option CURLOPT_CAPATH. Quand définie à false, la vérification du certificat homologue réussit malgré tout. true par défaut. Disponible à partir de PHP 7.3.0 et libcurl >= cURL 7.52.0.
CURLOPT_SAFE_UPLOAD Toujours true, ce qui désactive la prise en charge du préfixe @ pour le téléversement de fichiers dans CURLOPT_POSTFIELDS, ce qui signifie que les valeurs commençant par @ peuvent être transmises en tant que champs en toute sécurité. CURLFile peut être utilisé pour les téléversements à la place.
CURLOPT_SUPPRESS_CONNECT_HEADERStrue pour réprimer les en-têtes de réponse proxy CONNECT des fonctions de rappels utilisateurs CURLOPT_HEADERFUNCTION et CURLOPT_WRITEFUNCTION, quand CURLOPT_HTTPPROXYTUNNEL est utilisé et une requête CONNECT est faite. Ajouté dans cURL 7.54.0. Disponible à partir de PHP 7.3.0.
CURLOPT_TCP_FASTOPENtrue pour activer TCP Fast Open. Ajouté dans cURL 7.49.0. Disponible à partir de PHP 7.0.7.
CURLOPT_TFTP_NO_OPTIONStrue pour ne pas envoyer les requêtes d'options TFTP. Ajouté dans cURL 7.48.0. Disponible à partir de PHP 7.0.7.
CURLOPT_TRANSFERTEXTtrue 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_AUTHtrue pour continuer d'envoyer le nom d'utilisateur et le mot de passe lorsque l'on suit les chemins (en utilisant CURLOPT_FOLLOWLOCATION), même si le nom d'hôte change.
CURLOPT_UPLOADtrue pour préparer pour un téléversement.
CURLOPT_VERBOSEtrue pour afficher les informations de façon verbeuse. Écrit la sortie sur STDERR, ou dans le fichier spécifié en utilisant CURLOPT_STDERR.

value devrait être un entier pour les valeurs suivantes du paramètres option :

OptionDéfinir value àNotes
CURLOPT_BUFFERSIZE La taille du tampon à utiliser pour chaque lecture. Cependant, il n'y a aucune garantie que cette requête soit accomplie. Ajouté en cURL 7.10.
CURLOPT_CONNECTTIMEOUT Le nombre de secondes à attendre durant la tentative de connexion. Utiliser 0 pour attendre indéfiniment.
CURLOPT_CONNECTTIMEOUT_MS Le nombre de millisecondes à attendre durant la tentative de connexion. Utiliser 0 pour attendre indéfiniment. Si libcurl est compilé pour utiliser le système standard de résolution de noms, cette partie de la connexion utilisera toujours la seconde résolution pour le délai d'attente maximal avec un délai d'attente maximal minimum autorisé d'une seconde. Ajouté en cURL 7.16.2.
CURLOPT_DNS_CACHE_TIMEOUT Le temps en seconde pour conserver les entrées DNS en mémoire. Cette option est définie à 120 secondes (2 minutes) par défaut.
CURLOPT_EXPECT_100_TIMEOUT_MS Le délais d'attente pour les réponses Expect: 100-continue en millisecondes. Par défaut 1000 millisecondes. Ajouté dans cURL 7.36.0. Disponible à partir de PHP 7.0.7.
CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS Une longueur d'avance pour ipv6 pour l'algorithme happy eyeballs. Happy eyeballs tente se connecter à la fois aux adresses IPv4 et IPv6 pour les hôtes à double pile, préférant IPv6 d'abord pour les millisecondes d'expiration. Par défaut CURL_HET_DEFAULT, qui est actuellement 200 millisecondes. Ajouté en cURL 7.59.0. Disponible à partir de PHP 7.3.0.
CURLOPT_FTPSSLAUTH La méthode d'identification FTP, lorsqu'elle est activée : CURLFTPAUTH_SSL (tenter SSL en premier), CURLFTPAUTH_TLS (tenter TLS en premier), ou CURLFTPAUTH_DEFAULT (laisser cURL décider). Ajouté en cURL 7.12.2.
CURLOPT_HEADEROPT Comment gérer les en-têtes. Une des constantes suivantes : CURLHEADER_UNIFIED : les en-têtes spécifié dans CURLOPT_HTTPHEADER seront utilisés dans les requêtes à la fois aux serveurs ainsi qu'aux proxies. Avec cette option activé, CURLOPT_PROXYHEADER n'aura pas d'effet. CURLHEADER_SEPARATE : fait que les en-têtes CURLOPT_HTTPHEADER sont uniquement envoyés aux serveurs et pas à un proxy. Les en-têtes pour les proxies doivent être définit avec CURLOPT_PROXYHEADER pour être utilisé. Il est à noter que si une requête non-CONNECT est envoyé à un proxy, libcurl envera à la fois les en-têtes de serveur et de proxy. Lors de CONNECT, libcurl envera les en-têtes CURLOPT_PROXYHEADER seulement au proxy et les en-têtes CURLOPT_HTTPHEADER seulement au serveur. Par défaut CURLHEADER_SEPARATE à partir de cURL 7.42.1, et CURLHEADER_UNIFIED auparavant. Ajouté dans cURL 7.37.0. Disponible à partir de PHP 7.0.7.
CURLOPT_HTTP_VERSIONCURL_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), CURL_HTTP_VERSION_2_0 (tente HTTP 2), CURL_HTTP_VERSION_2 (alias de CURL_HTTP_VERSION_2_0) ,CURL_HTTP_VERSION_2TLS (tente HTTP 2 sur TLS (HTTPS) uniquement) ou CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE (émet des requêtes HTTP non TLS en utilisant HTTP / 2 sans mise à niveau HTTP / 1.1).
CURLOPT_HTTPAUTH

La méthode d'identification HTTP à utiliser. Ces options sont : CURLAUTH_BASIC, CURLAUTH_DIGEST, CURLAUTH_GSSNEGOTIATE, CURLAUTH_NTLM, CURLAUTH_AWS_SIGV4, CURLAUTH_ANY et CURLAUTH_ANYSAFE.

L'opérateur bit à bit | (ou) peut être utilisé pour combiner plus d'une méthode. Si ceci est fait, cURL interrogera le serveur pour voir quelles sont les méthodes supportées et prendra la meilleur.

CURLAUTH_ANY définit tous les bits. cURL sélectionnera automatiquement celui qu'il trouve le plus sécurisé.

CURLAUTH_ANYSAFE définit tous les bits sauf CURLAUTH_BASIC. cURL sélectionnera automatiquement celui qu'il trouve le plus sécurisé.

CURLOPT_INFILESIZE La taille attendue, en octets, du fichier lors du téléversemement d'un fichier vers un site distant. Notez que l'utilisation de cette option n'arrêtera pas libcurl d'envoyer plus de données, de la même façon que ce qui est envoyé dépend de l'option CURLOPT_READFUNCTION.
CURLOPT_LOW_SPEED_LIMIT La vitesse de transfert, 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, pendant lequel si le transfert reste en dessous de CURLOPT_LOW_SPEED_LIMIT, PHP considérera que la connexion est trop lente, et l'annulera.
CURLOPT_MAIL_RCPT_ALLLOWFAILS Autorise l'échec de la commande RCPT TO pour certains destinataires. Lors de l'envoi de données à plusieurs destinataires, cURL interrompt la conversation SMTP par défaut si au moins l'un des destinataires provoque une erreur avec la commande RCPT TO. Cette option indique à cURL d'ignorer les erreurs et de continuer avec les destinataires valides restants. Si tous les destinataires génèrent des échecs RCPT TO et que ce drapeau est activé, cURL interrompra la conversation SMTP et renverra l'erreur reçue de la dernière commande RCPT TO.
CURLOPT_MAXAGE_CONN Le temps d'inactivité maximal autorisé pour qu'une connexion existante soit considérée comme réutilisable. La durée maximale par défaut est de 118 secondes.
CURLOPT_MAXFILESIZE_LARGE La taille maximale du fichier en octets autorisée à télécharger. Si la taille du fichier demandé est supérieure à cette valeur, le transfert ne commencera pas et CURLE_FILESIZE_EXCEEDED sera renvoyé. La taille du fichier n'est pas toujours connue avant le téléchargement, et pour de tels fichiers, cette option n'a aucun effet, même si le transfert de fichier finit par être plus grand que cette limite donnée.
CURLOPT_MAXLIFETIME_CONN Le temps maximal en secondes, depuis la création de la connexion, qui est autorisé pour qu'une connexion existante soit considérée pour être réutilisable. Si une connexion est trouvée dans la mémoire cache et est plus ancienne que cette valeur, elle sera fermée une fois que tous les transferts en cours seront terminés. La valeur par défaut est de 0 seconde, ce qui signifie que l'option est désactivée et que toutes les connexions sont éligibles pour être réutilisées.
CURLOPT_MAXCONNECTS Le nombre maximal de connexions persistantes autorisées. Lorsque la limite est atteinte, la plus ancienne dans le cache est fermée pour éviter d'augmenter le nombre de connexions ouvertes.
CURLOPT_MAXREDIRS Le nombre maximal de redirections HTTP à suivre. Utilisez cette option avec l'option CURLOPT_FOLLOWLOCATION. Une valeur par défaut de 20 est définit pour prévenir les redirections infinies. Définir à -1 permet les redirections infinies, et 0 refuse toute redirection.
CURLOPT_PORT Un numéro de port alternatif auquel se connecter.
CURLOPT_POSTREDIR Un masque de bit de 1 (301 Moved Permanently), 2 (302 Found) et 4 (303 See Other) si la méthode HTTP POST doit être maintenu quand CURLOPT_FOLLOWLOCATION est défini et un type spécifique de redirection se produit. Ajouté dans cURL 7.19.1.
CURLOPT_PROTOCOLS

Champ de bits de valeurs CURLPROTO_*. S'il est utilisé, ce champ limite les protocoles qui peuvent être utilisés durant un transfert. Cela vous permet de limiter le nombre de protocoles utilisés par la libcurl, tout en la compilant avec un grand nombre d'entre eux. Par défaut, libcurl va accepter tous les protocoles qu'elle supporte. Voir aussi CURLOPT_REDIR_PROTOCOLS.

Les options valides de protocoles sont : CURLPROTO_HTTP, CURLPROTO_HTTPS, CURLPROTO_FTP, CURLPROTO_FTPS, CURLPROTO_SCP, CURLPROTO_SFTP, CURLPROTO_TELNET, CURLPROTO_LDAP, CURLPROTO_LDAPS, CURLPROTO_DICT, CURLPROTO_FILE, CURLPROTO_TFTP, CURLPROTO_MQTT, CURLPROTO_ALL

Ajouté en cURL 7.19.4.
CURLOPT_PROXYAUTH La méthode d'authentifucation 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.
CURLOPT_PROXYPORT Le numéro du port du proxy à utiliser pour la connexion. Ce numéro de port peut également être défini dans CURLOPT_PROXY.
CURLOPT_PROXYTYPE Soit CURLPROXY_HTTP (par défaut), CURLPROXY_SOCKS4, CURLPROXY_SOCKS5, CURLPROXY_SOCKS4A ou CURLPROXY_SOCKS5_HOSTNAME. Ajouté en cURL 7.10.
CURLOPT_REDIR_PROTOCOLS Masque de bits des valeurs CURLPROTO_*. S'il est utilisé, ce masque limite les protocoles que libcurl peut utiliser dans un transfert qu'il suit après une redirection lorsque CURLOPT_FOLLOWLOCATION est activé. Cela permet de limiter certains transferts spécifique à utiliser un sous groupe des protocoles lors d'une redirection. Par défaut, libcurl va autoriser tous les protocoles, hormis FILE et SCP. Ceci est différent comparé aux versions antérieurs à 7.19.4 qui suivaient inconditionnellement tous les protocoles supportés. Voir aussi CURLOPT_PROTOCOLS pour les valeurs des constantes de protocoles. Ajoutés en cURL 7.19.4.
CURLOPT_RESUME_FROM La position, en octets, où reprendre un transfert.
CURLOPT_SOCKS5_AUTH

Les méthode(s) d'authentification SOCKS5 à utiliser. Les options sont : CURLAUTH_BASIC, CURLAUTH_GSSAPI, CURLAUTH_NONE.

L'opérateur bit à bit | (ou) peut être combiné pour utiliser plus d'une méthode. Si ceci est fait, cURL interrogera le serveur pour voir quelles méthodes sont prises en charge et choisir la meilleure.

CURLAUTH_BASIC autorise l'authentification utilisateur/mot de passe.

CURLAUTH_GSSAPI autorise l'authentification GSS-API.

CURLAUTH_NONE autorise aucune authentification.

Par défaut CURLAUTH_BASIC|CURLAUTH_GSSAPI. Définir l'utilisateur actuel et mot de passe avec l'option CURLOPT_PROXYUSERPWD.

Disponible à partir de PHP 7.3.0 et curl >= 7.55.0.
CURLOPT_SSL_OPTIONS Définit les options de comportement SSL, qui est un masque de bits des constantes suivantes : CURLSSLOPT_ALLOW_BEAST : n'essaye pas d'utiliser des solutions de contournement pour une faille de sécurité dans les protocoles SSL3 et TLS1.0. CURLSSLOPT_NO_REVOKE : désactiver les vérifications de révocation de certificats pour les serveurs SSL où un tel comportement est présent. CURLSSLOPT_AUTO_CLIENT_CERT : localisation automatique et utilisation d'un certificat client pour l'authentification, lorsque demandé par le serveur. Cette option est uniquement prise en charge pour Schannel (la bibliothèque SSL native de Windows). CURLSSLOPT_NATIVE_CA : utilisation du magasin de certificats natif du système d'exploitation pour la vérification des certificats. Fonctionne uniquement sous Windows lorsqu'il est construit pour utiliser OpenSSL. Cette option est expérimentale et son comportement est susceptible de changer. CURLSSLOPT_NO_PARTIALCHAIN : ne pas accepter les chaînes de certificats "partielles", que cURL accepte par défaut. Cette option est uniquement prise en charge pour OpenSSL et échouera la vérification du certificat si la chaîne se termine par un certificat intermédiaire et non par un certificat racine. CURLSSLOPT_REVOKE_BEST_EFFORT : ignorer les vérifications de révocation de certificat en cas d'absence ou d'indisponibilité des points de distribution pour les bibliothèques SSL où un tel comportement est présent. Cette option est uniquement prise en charge pour Schannel (la bibliothèque SSL native de Windows). Si elle est combinée avec CURLSSLOPT_NO_REVOKE, cette dernière prévaut. Ajouté dans cURL 7.25.0. Disponible à partir de PHP 7.0.7.
CURLOPT_SSL_VERIFYHOST2 pour vérifier qu'un champ Common Name field ou Subject Alternate Name dans le certificat SSL correspond avec le nom d'hôte fourni. 0 pour ne pas vérifier les noms. 1 ne devrait pas être utilisé. Dans les environnement de production, la valeur de cette option doit être conservée à 2 (valeur par défaut). Support pour la valeur 1 supprimé en cURL 7.28.1
CURLOPT_SSLVERSION Une valeur parmi CURL_SSLVERSION_DEFAULT (0), CURL_SSLVERSION_TLSv1 (1), CURL_SSLVERSION_SSLv2 (2), CURL_SSLVERSION_SSLv3 (3), CURL_SSLVERSION_TLSv1_0 (4), CURL_SSLVERSION_TLSv1_1 (5) ou CURL_SSLVERSION_TLSv1_2 (6) ou CURL_SSLVERSION_TLSv1_3 (7). La version TLS maximale peut être définie en utilisant une des constantes CURL_SSLVERSION_MAX_*. Il est aussi possible de OU une des constantes CURL_SSLVERSION_* avec une des constantes CURL_SSLVERSION_MAX_*. CURL_SSLVERSION_MAX_DEFAULT (la version maximale supporté par la bibliothèque), CURL_SSLVERSION_MAX_TLSv1_0, CURL_SSLVERSION_MAX_TLSv1_1, CURL_SSLVERSION_MAX_TLSv1_2, ou CURL_SSLVERSION_MAX_TLSv1_3.

Note:

Dans votre intérêt, il est préférable de ne pas définir cette valeur et utiliser la valeur par défaut. Définir à 2 ou 3 est très dangereux sachant le nombre de vulnérabilité présentes dans SSLv2 et SSLv3.

CURLOPT_PROXY_SSL_OPTIONS Définit les options de comportement proxie SSL, qui est un masque de bits des constantes suivantes : CURLSSLOPT_ALLOW_BEAST : n'essaye pas d'utiliser des solutions de contournement pour une faille de sécurité dans les protocoles SSL3 et TLS1.0. CURLSSLOPT_NO_REVOKE : désactiver les vérifications de révocation de certificats pour les serveurs SSL où un tel comportement est présent. (curl >= 7.44.0) CURLSSLOPT_NO_PARTIALCHAIN : n'accepte pas des chaînes "partielles" de certificats, qui est sinon la valeur par défaut. (curl >= 7.68.0) Disponible à partir de PHP 7.3.0 et libcurl >= cURL 7.52.0.
CURLOPT_PROXY_SSL_VERIFYHOST Définir à 2 pour vérifier dans le certificats du proxie HTTPS les champs de nom contre le nom du proxie. Quand définie à 0 la connexion succède peut importe des noms utilisés dans le certificat. Utilisez cette fonctionnalité avec précaution! 1 est traité comme une option de debug dans curl 7.28.0 et antérieur. Entre curl 7.28.1 et 7.65.3 CURLE_BAD_FUNCTION_ARGUMENT est retourné. À partir de curl 7.66.0 1 et 2 sont traité comme la même valeur. En environnement de production, la valeur de cette option doit être conservée à 2 (valeur par défaut). Disponible à partir de PHP 7.3.0 et libcurl >= cURL 7.52.0.
CURLOPT_PROXY_SSLVERSION Une de CURL_SSLVERSION_DEFAULT, CURL_SSLVERSION_TLSv1, CURL_SSLVERSION_TLSv1_0, CURL_SSLVERSION_TLSv1_1, CURL_SSLVERSION_TLSv1_2, CURL_SSLVERSION_TLSv1_3, CURL_SSLVERSION_MAX_DEFAULT, CURL_SSLVERSION_MAX_TLSv1_0, CURL_SSLVERSION_MAX_TLSv1_1, CURL_SSLVERSION_MAX_TLSv1_2, CURL_SSLVERSION_MAX_TLSv1_3 ou CURL_SSLVERSION_SSLv3.

Note:

Dans votre intérêt, il est préférable de ne pas définir ceci et de le laisser utiliser la valeur par défaut CURL_SSLVERSION_DEFAULT qui tentera de comprendre la version du protocole SSL distant.

Disponible à partir de PHP 7.3.0 et libcurl >= cURL 7.52.0.
CURLOPT_STREAM_WEIGHT Définit le poid numérique du flux (un nombre entre 1 et 256). Ajouté dans cURL 7.46.0. Disponible à partir de PHP 7.0.7.
CURLOPT_TCP_KEEPALIVE Si définie à 1, Des sondes TCP keepalive seront envoyées. Le délais et fréquence de ces sondes peut être controllé par les options CURLOPT_TCP_KEEPIDLE et CURLOPT_TCP_KEEPINTVL, à condition que le système d'exploitation les supporte. Si définie à 0 (par défaut) les sondes keepalive sont désactivées. Ajouté dans cURL 7.25.0.
CURLOPT_TCP_KEEPIDLE Définie le délais, en secondes, que le système d'exploitation attendra pendent que la connexion est inoccupé, avant d'envoyer des sondes keepalive, si CURLOPT_TCP_KEEPALIVE est activé. Pas tout les systèmes d'exploitations supportent cette option. La valeur par défaut est 60. Ajouté dans cURL 7.25.0.
CURLOPT_TCP_KEEPINTVL Définie l'intervalle, en secondes, que le système d'exploitation attendra entre les envoies des sondes keepalive, si CURLOPT_TCP_KEEPALIVE est activé. Pas tout les systèmes d'exploitations supportent cette option. La valeur par défaut est 60. Ajouté dans cURL 7.25.0.
CURLOPT_TIMECONDITION Comment CURLOPT_TIMEVALUE est traité. Utiliser CURL_TIMECOND_IFMODSINCE pour retourner la page uniquement si elle a été modifiée depuis le temps spécifié dans CURLOPT_TIMEVALUE. Si elle n'a pas été modifiée, un en-tête "304 Not Modified" sera retourné en supposant que CURLOPT_HEADER vaut true. Utiliser CURL_TIMECOND_IFUNMODSINCE pour faire l'inverse. Utiliser CURL_TIMECOND_NONE pour ignorer CURLOPT_TIMEVALUE et toujours retourner la page. La valeur par défaut est CURL_TIMECOND_NONE. Antérieur à cURL 7.46.0 la valeur par défaut était CURL_TIMECOND_IFMODSINCE.
CURLOPT_TIMEOUT Le temps maximum d'exécution de la fonction cURL exprimé en secondes.
CURLOPT_TIMEOUT_MS Le nombre maximal de millisecondes autorisé aux fonctions cURL pour l'exécution. Si libcurl est compilé pour utiliser le système standard de résolution de noms, cette partie de la connexion utilisera toujours la seconde résolution pour le délai d'attente maximal avec un délai d'attente maximal minimum autorisé d'une seconde. Ajouté en cURL 7.16.2.
CURLOPT_TIMEVALUE Le temps en secondes depuis le 1er janvier 1970. Le temps sera utilisée par CURLOPT_TIMECONDITION.
CURLOPT_TIMEVALUE_LARGE Le temps en secondes depuis le 1er Janvier, 1970. Le temps sera utilisé par CURLOPT_TIMECONDITION. Par défaut zéro. La différence entre cette option et CURLOPT_TIMEVALUE est le type d'argument. Sur les systèmes où 'long' est seulement large de 32 bits, cette option doit être utilisé pour définir des dates au delà de l'année 2038. Ajouté dans cURL 7.59.0. Disponible à partir de PHP 7.3.0.
CURLOPT_UPKEEP_INTERVAL_MS Certains protocoles disposent de mécanismes de "maintenance de connexion". Ces mécanismes envoient généralement du trafic sur des connexions existantes pour les maintenir actives. Cette option définit l'intervalle de maintenance de la connexion. Actuellement, le seul protocole avec un mécanisme de maintenance de la connexion est HTTP/2. Lorsque l'intervalle de maintenance de la connexion est dépassé, une trame PING HTTP/2 est envoyée sur la connexion. La valeur par défaut est de 60 secondes.
CURLOPT_UPLOAD_BUFFERSIZE Taille de mémoire tampon préférée en octets pour la mémoire tampon d'envoi cURL. La taille de la mémoire tampon d'envoi est par défaut de 64 kilooctets. La taille maximale de mémoire tampon autorisée est de 2 mégaoctets. La taille minimale de mémoire tampon autorisée est de 16 kilooctets.
CURLOPT_MAX_RECV_SPEED_LARGE Si un téléchargement excède cette vitesse (comptée en octets par seconde) sur une moyenne cumulée durant le transfert, le transfert se mettra en pause pour conserver la moyenne inférieure ou égales à la valeur de ce paramètre. Par défaut, la vitesse est illimitée. Ajouté en cURL 7.15.5.
CURLOPT_MAX_SEND_SPEED_LARGE Si un téléversement excède cette vitesse (comptée en octets par seconde) sur une moyenne cumulée durant le transfert, le transfert se mettra en pause pour conserver la moyenne inférieure ou égales à la valeur de ce paramètre. Par défaut, la vitesse est illimitée. Ajouté en cURL 7.15.5.
CURLOPT_SSH_AUTH_TYPES Un masque de bit constitué d'une ou plusieurs de : CURLSSH_AUTH_PUBLICKEY, CURLSSH_AUTH_PASSWORD, CURLSSH_AUTH_HOST, CURLSSH_AUTH_KEYBOARD. Définir à CURLSSH_AUTH_ANY pour laisser libcurl choisir. Ajouté en cURL 7.16.1.
CURLOPT_IPRESOLVE Autorise une application à sélectionner le type d'adresse IP à utiliser lors de la résolution des noms d'hôtes. Ceci n'est intéressant que lors de l'utilisation des noms d'hôtes qui résolvent les adresses en utilisant plus d'une version d'IP ; les valeurs possibles sont CURL_IPRESOLVE_WHATEVER, CURL_IPRESOLVE_V4, CURL_IPRESOLVE_V6 ; par défaut CURL_IPRESOLVE_WHATEVER. Ajouté en cURL 7.10.8.
CURLOPT_FTP_FILEMETHOD Dit à curl quelle méthode à utiliser pour atteindre un fichier sur un serveur FTP(S). Valeur possible sont CURLFTPMETHOD_DEFAULT, CURLFTPMETHOD_MULTICWD, CURLFTPMETHOD_NOCWD, et CURLFTPMETHOD_SINGLECWD. Ajouté en cURL 7.15.1.

value doit être une chaîne de caractères pour les valeurs suivantes du paramètres option :

OptionDéfinir value àNotes
CURLOPT_ABSTRACT_UNIX_SOCKET Active l'usage d'un socket domaine Unix abstrait au lieu d'établir une connexion TCP à un hôte et définie le chemin à la chaîne de caractères fournie. Cette option partage les mêmes sémantiques que CURLOPT_UNIX_SOCKET_PATH. Ces deux options partagent le même stockage et doc seul un des deux peut être définie par gestionnaire. Disponible à partir de PHP 7.3.0 et cURL 7.53.0
CURLOPT_ALTSVC Indique au fichier que cURL doit utiliser comme cache Alt-Svc pour lire le contenu du cache existant et, éventuellement, pour le réécrire après un transfert, sauf si CURLALTSVC_READONLYFILE est activé via CURLOPT_ALTSVC_CTRL.
CURLOPT_ALTSVC_CTRL Remplit le jeu de bits avec le bon ensemble de fonctionnalités pour indiquer à cURL comment gérer Alt-Svc pour les transferts effectués avec cette poignée. cURL n'accepte que les en-têtes Alt-Svc sur HTTPS. Il achèvera également une requête vers une origine alternative uniquement si cette origine est correctement hébergée sur HTTPS. Le réglage de n'importe quel bit activera le moteur alt-svc. Les options sont : CURLALTSVC_H1, CURLALTSVC_H2, CURLALTSVC_H3, et CURLALTSVC_READONLYFILE.
CURLOPT_AWS_SIGV4

Fournit une authentification de signature AWS V4 dans l'en-tête HTTP(S).

Cette option remplace tout autre type d'authentification qui a été défini dans CURLOPT_HTTPAUTH. Cette méthode ne peut pas être combinée avec d'autres types d'authentification.

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. Peut nécessiter un chemin absolu.
CURLOPT_CAINFO_BLOB Le nom d'un fichier PEM contenant un ou plusieurs certificats pour vérifier le pair. Cette option remplace CURLOPT_CAINFO. Disponible à partir de PHP 8.2.0 et cURL 7.77.0
CURLOPT_CAPATH Un dossier qui contient les certificats. Utilisez cette option avec l'option CURLOPT_SSL_VERIFYPEER.
CURLOPT_COOKIE Le contenu de l'en-tête "Cookie: ", à transmettre dans l'en-tête HTTP. Notez que les cookies sont séparées par des points-virgule, suivi d'un d'espace (e.g., "fruit=pomme; couleur=rouge")
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. Si le nom est une chaîne de caractère vide, aucun cookie n'est chargé, mais le gestionnaire est toujours actif.
CURLOPT_COOKIEJAR Le nom de fichier pour y sauvegarder tous les cookies internes lorsque la connexion se ferme, par exemple après un appel à curl_close.
CURLOPT_COOKIELIST Une chaîne cookie (c.à.d. une seule ligne dans le format Netscape/Mozilla, ou un en-tête de style HTTP régulier Set-Cookie) ajoute cet unique cookie au stockage interne de cookie. "ALL" efface tout les cookies tenu en mémoire. "SESS" efface tout les cookies de session tenu en mémoire. "FLUSH" écrit tout les connues dans le fichier spécifié par CURLOPT_COOKIEJAR. "RELOAD" charge tout les cookies depuis les fichiers spécifié par CURLOPT_COOKIEFILE. Disponible à partir de cURL 7.14.1.
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 complète ici. Par exemple, entrer "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_DEFAULT_PROTOCOL

Le protocole par défaut à utiliser si l'URL manque un nom de schème.

Ajouté en cURL 7.45.0. Disponible à partir de PHP 7.0.7.
CURLOPT_HSTS

Nom du fichier de cache HSTS (HTTP Strict Transport Security).

CURLOPT_HSTS_CTRL

Contrôle le comportement HSTS (HTTP Strict Transport Security). Remplit le jeu de bits avec le bon ensemble de fonctionnalités pour indiquer à cURL comment gérer HSTS pour les transferts effectués avec cette poignée. CURLHSTS_ENABLE active le cache HSTS en mémoire. Si le fichier de cache HSTS est défini, réglez CURLHSTS_READONLYFILE pour rendre le fichier en lecture seule.

CURLOPT_DNS_INTERFACE

Définit le nom de l'interface réseau à laquelle le résolveur DNS doit se lier. Ceci doit être un nom d'interface (pas une adresse).

Ajouté en cURL 7.33.0. Disponible à partir de PHP 7.0.7.
CURLOPT_DNS_LOCAL_IP4

Définit l'adresse IPv4 locale à laquelle le résolveur DNS doit se lier. L'argument devrait contenir une seule adresse numérique IPv4 sous chaîne de caractères

Ajouté en cURL 7.33.0. Disponible à partir de PHP 7.0.7.
CURLOPT_DNS_LOCAL_IP6

Définit l'adresse IPv6 locale à laquelle le résolveur DNS doit se lier. L'argument devrait contenir une seule adresse numérique IPv6 sous chaîne de caractères

Ajouté en cURL 7.33.0. Disponible à partir de PHP 7.0.7.
CURLOPT_EGDSOCKET 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 PORT 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_KEYPASSWD Le mot de passé nécessaire pour utiliser la clé privée CURLOPT_SSLKEY ou la clé privée CURLOPT_SSH_PRIVATE_KEYFILE. Added in cURL 7.16.1.
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_LOGIN_OPTIONS Peut être utilisé pour définir des options de connexion spécifiques au protocole, telles que le mécanisme d’authentification préféré via "AUTH = NTLM" ou "AUTH = *", et doit être utilisé conjointement avec l'option CURLOPT_USERNAME. Ajouté en cURL 7.34.0. Disponible à partir de PHP 7.0.7.
CURLOPT_PINNEDPUBLICKEY Définit la clé publique épinglée. La chaîne de caractères peut être le nom de fichier de votre clé publique épinglée. Le format de fichier attendu est "PEM" ou "DER". La chaîne de caractères peut également être un nombre quelconque de hachages sha256 codés en base64, précédés de "sha256//" et séparés par ";". Ajouté en cURL 7.39.0. Disponible à partir de PHP 7.0.7.
CURLOPT_POSTFIELDS Toutes les données à passer lors d'une opération de HTTP POST. Ce paramètre peut être passé sous la forme d'une chaîne encodée URL, comme 'para1=val1&para2=val2&...' ou sous la forme d'un tableau dont le nom du champ est la clé, et les données du champ la valeur. Si le paramètre value est un tableau, l'en-tête Content-Type sera définie à multipart/form-data. Des fichiers peuvent être envoyé en utilisant CURLFile ou CURLStringFile, dans quel cas value doit être un tableau.
CURLOPT_PRIVATE Toutes les données devant être associées à ce descripteur cURL. Ces données peuvent ensuite être récupérées avec l'option CURLINFO_PRIVATE de curl_getinfo(). cURL ne fait rien avec ces données. Lors de l'utilisation d'un multidescripteur cURL, ces données privées sont généralement une clé unique pour identifier un descripteur cURL standard. Ajouté en cURL 7.10.3.
CURLOPT_PRE_PROXY Définie une chaîne de caractères contenant le nom d'hôte ou addresse OP sous notation décimale à point à utiliser en tant que pré-proxy que curl se connecte avant qu'il se connecte au proxy HTTP(S) spécifié dans l'option CURLOPT_PROXY pour la requête à venir. Le pré-proxy peut uniquement être un proxy SOCKS et devrait être préfixé avec [scheme]:// pour spécifier quel type de socks est utilisé. Une addresse IPv6 numérique doit être écrit entre [crochet]. Définir le pré-proxy à une chaîne vide désactive explicitement l'utilisation d'un pré-proxy. Pour spécifier le numéro de port dans la chaîne, ajouter :[port] à la fin du nom d'hôte. Le numéro de port du proxy peut être optionellement définie avec l'option distincte CURLOPT_PROXYPORT. Utilise le port 1080 pour les proxies par défaut si aucun port n'a été spécifié. Disponible à partir de PHP 7.3.0 et libcurl >= cURL 7.52.0.
CURLOPT_PROXY Le nom du proxy HTTP au tunnel qui le demande.
CURLOPT_PROXY_SERVICE_NAME Le nom du service d'authentification proxy. Ajouté en cURL 7.43.0 pour les proxys HTTP et en cURL 7.49.0 pour les proxys SOCK5. Disponible à partir de PHP 7.0.7.
CURLOPT_PROXY_CAINFO Le chemin vers le bundle d'autorité de certification (CA) du proxy. Définir le chemin en tant que chaîne de caractères nomant un fichier tenant un ou plusieurs certificats pour vérifier le proxy HTTPS avec. Cette option est pour se connecter à un proxy HTTPS, pas un serveur HTTPS. Par défaut définit au chemin système où le bundle cacert de libcurl est supposé être stocké. Disponible à partir de PHP 7.3.0 et libcurl >= cURL 7.52.0.
CURLOPT_PROXY_CAINFO_BLOB Le nom d'un fichier PEM contenant un ou plusieurs certificats pour vérifier le proxy HTTPS. Cette option est destinée à la connexion à un proxy HTTPS, et non à un serveur HTTPS. La valeur par défaut est définie sur le chemin système où le paquet de certificats cacert de libcurl est supposé être stocké. Disponible à partir de PHP 8.2.0 et libcurl >= cURL 7.77.0.
CURLOPT_PROXY_CAPATH Le dossier tenant plusieurs certificats CA pour vérifier le proxy HTTPS avec. Disponible à partir de PHP 7.3.0 et libcurl >= cURL 7.52.0.
CURLOPT_PROXY_CRLFILE Définie le nom de fichier avec la concatenation de CRL (Certificate Revocation List) en format PEM pour utiliser lors de la validation de certificat qui se produit lors de l'échange SSL. Disponible à partir de PHP 7.3.0 et libcurl >= cURL 7.52.0.
CURLOPT_PROXY_KEYPASSWD Définie la chaîne de caractères a utiliser comme mot de passe nécessaire pour uriliser la clé privée CURLOPT_PROXY_SSLKEY. Vous n'avez jamais besoin d'une passphrase pour charger un certificat mais vous en avez besoin d'un pour charger votre clé privée. Cette option est pour se connecter à un proxy HTTPS, et non un serveur HTTPS. Disponible à partir de PHP 7.3.0 et libcurl >= cURL 7.52.0.
CURLOPT_PROXY_PINNEDPUBLICKEY Définie la clé pubique éplinglé pour le proxy HTTPS. La chaîne de caractères peut être le nom de fichier de votre clé publique. Le format de fichier attendue est "PEM" ou "DER". La chaîne de caractères peut également être un nombre quelconque de hachages sha256 encodés en base64 précédés de "sha256//" et séparé de ";" Disponible à partir de PHP 7.3.0 et libcurl >= cURL 7.52.0.
CURLOPT_PROXY_SSLCERT Le nom de fichier de votre certificat client utilisé pour se connecter au proxy HTTPS. Le format par défaut est "P12" sur Secure Transport et "PEM" sur les autres moteurs, et peut être modifié avec CURLOPT_PROXY_SSLCERTTYPE. Avec NSS ou Secure Transport, ceci peut être le surnom du certificat avec lequel vous souhaitez vous authentifier avec tel qu'il est nommée dans la base de donnée sécurité. Si vous voulez utiliser un fichier du dossier courrent, veuillez le précédez avec le préfix "./", de l'ordre à éviter une confusion avec le surnom. Disponible à partir de PHP 7.3.0 et libcurl >= cURL 7.52.0.
CURLOPT_PROXY_SSLCERTTYPE Le format de vos certificats client utilisé lors de la connexion à un proxy HTTPS. Les formats supporté sont "PEM" et "DER", sauf avec Secure Transport. OpenSSL (version 0.9.3 et ultérieur) et Secure Transport (sur iOS 5 ou ultérieur, ou OS X 10.7 ou ultérieur) supportent aussi les fichier encodé PKCS#12. Par défaut "PEM". Disponible à partir de PHP 7.3.0 et libcurl >= cURL 7.52.0.
CURLOPT_PROXY_SSL_CIPHER_LIST La liste des suites de chiffrement à utiliser pour la connexion au proxy HTTPS. La liste doit être syntaxiquement correcte, elle consiste de une ou plusieurs suites de chiffrement séparé par des deux-points. Les virgules ou espaces sont aussi des séparateurs acceptable mais les deux-points sont normalement utilisé, !, - et + peuvent être utilisé comme des opérations. Disponible à partir de PHP 7.3.0 et libcurl >= cURL 7.52.0.
CURLOPT_PROXY_TLS13_CIPHERS La liste des suites de chiffrement à utiliser pour la connexion TLS 1.3 à un proxy. La liste doit être syntaxiquement correcte, elle consiste de une ou plusieurs suites de chiffrement séparé par des deux-points. Cette option est actuellement seulement utilisé quand curl est compilé pour utiliser OpenSSL 1.1.1 ou ultérieur. Si vous utilisé un backend SSL différent vous pouvez essayer de définir les suites de chiffrement TLS 1.3 en utilisant l'option CURLOPT_PROXY_SSL_CIPHER_LIST. Disponible à partir de PHP 7.3.0 et libcurl >= cURL 7.61.0. Disponible si compilé avec OpenSSL >= 1.1.1.
CURLOPT_PROXY_SSLKEY Le nom de fichier de votre clé privé utilisé pour se connecter au proxy HTTPS. Le format par défaut est "PEM" et peut être modifié avec CURLOPT_PROXY_SSLKEYTYPE. (iOS et Mac OS X uniquement) Cette option est ignoré si curl est compilé contre Secure Transport. Disponible à partir de PHP 7.3.0 et libcurl >= cURL 7.52.0. Disponible si TLS est activé.
CURLOPT_PROXY_SSLKEYTYPE Le format de votre clé privée. Format supporté sont "PEM", "DER" et "ENG". Disponible à partir de PHP 7.3.0 et libcurl >= cURL 7.52.0.
CURLOPT_PROXY_TLSAUTH_PASSWORD Le mot de passe à utiliser pour la méthode d'authentification TLS spécifié avec l'option CURLOPT_PROXY_TLSAUTH_TYPE. Nécessite que l'option CURLOPT_PROXY_TLSAUTH_USERNAME soit aussi définie. Disponible à partir de PHP 7.3.0 et libcurl >= cURL 7.52.0.
CURLOPT_PROXY_TLSAUTH_TYPE La méthode d'authentification TLS utilisé pour la connexion HTTPS. Méthode supporté est "SRP".

Note:

L'authentification Secure Remote Password (SRP) pour TLS fournit une authentification mutuelle si les deux côté ont un secret partagé. Pour utiliser TLS-SRP, vous devez aussi définir les options CURLOPT_PROXY_TLSAUTH_USERNAME et CURLOPT_PROXY_TLSAUTH_PASSWORD.

Disponible à partir de PHP 7.3.0 et libcurl >= cURL 7.52.0.
CURLOPT_PROXY_TLSAUTH_USERNAME Tusername à utiliser pour la méthode d'autenthification TLS du proxy HTTPS spécifié avec l'option CURLOPT_PROXY_TLSAUTH_TYPE. Nécessite que l'option CURLOPT_PROXY_TLSAUTH_PASSWORD soit aussi définie. Disponible à partir de PHP 7.3.0 et libcurl >= cURL 7.52.0.
CURLOPT_PROXYUSERPWD Un nom d'utilisateur et un mot de passe formaté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_SASL_AUTHZID L'identité d'autorisation (authzid) pour le transfert. Applicable uniquement au mécanisme d'authentification SASL PLAIN où elle est facultative. Lorsqu'elle n'est pas spécifiée, seule l'identité d'authentification (authcid) telle que spécifiée par le nom d'utilisateur sera envoyée au serveur, accompagnée du mot de passe. Le serveur déduira l'authzid de l'authcid lorsqu'il n'est pas fourni, qu'il utilisera ensuite en interne.
CURLOPT_SERVICE_NAME Le nom du service d'authentification. Ajouté en cURL 7.43.0. Disponible à partir de PHP 7.0.7.
CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 Une chaîne contenant 32 digits hexédécimaux. La chaîne doit être la somme MD5 de la clé publique de l'hôte distant, et libcurl rejètera la connexion à l'hôte tant que les sommes MD5 ne corresponderont pas. Cette option n'est valable que pour les transferts SCP et SFTP. Ajouté en cURL 7.17.1.
CURLOPT_SSH_HOST_PUBLIC_KEY_SHA256 Hachage SHA256 encodé en Base64 de la clé publique de l'hôte distant. Le transfert échouera si le hachage fourni ne correspond pas au hachage fourni par l'hôte distant.
CURLOPT_SSH_PUBLIC_KEYFILE Le nom du fichier pour la clé publique. Si non utilisé, libcurl utilisera pas défaut $HOME/.ssh/id_dsa.pub si la variable d'environnement $HOME est définie, et seulement "id_dsa.pub" si HOME n'est pas définie. Ajouté en cURL 7.16.1.
CURLOPT_SSH_PRIVATE_KEYFILE Le nom du fichier pour la clé privée. Si non utilisé, libcurl utilisera pas défaut $HOME/.ssh/id_dsa si la variable d'environnement $HOME est définie, et seulement "id_dsa" si HOME n'est pas définie. Si le fichier est protégé par un mot de passe, définissez le avec la constante CURLOPT_KEYPASSWD. Ajouté en cURL 7.16.1.
CURLOPT_SSL_CIPHER_LIST Une liste de chiffrements à utiliser avec SSL. Par exemple, RC4-SHA et TLSv1 sont des listes valides de chiffrements.
CURLOPT_SSL_EC_CURVES Une liste de courbes elliptiques délimitées par des deux-points. Par exemple, X25519:P-521 est une liste valide de deux courbes elliptiques. Cette option définit les algorithmes d'échange de clés du client dans la poignée SSL, si le backend SSL utilisé par cURL le prend en charge.
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" (par défaut), "DER", et "ENG". À partir de OpenSSL 0.9.3, "P12" (pour fichiers encodé PKCS#12) et aussi supporté. Ajouté en cURL 7.9.3.
CURLOPT_SSLENGINE L'identifiant pour le moteur de chiffrement de votre clé privée spécifié dans CURLOPT_SSLKEY.
CURLOPT_SSLENGINE_DEFAULT L'identifiant pour le moteur de chiffrement utilisé pour les opérations de chiffrement 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é supportés sont "PEM" (par défaut), "DER", et "ENG".
CURLOPT_TLS13_CIPHERS La liste des suites de chiffrement à utiliser pour la connexion TLS 1.3. La liste doit être syntaxiquement correcte, elle consiste de un ou plusieurs chaînes de suites de chiffrement séparé par des deux-points. Cette option est actuellement uniquement quand curl est compilé pour utiliser OpenSSL 1.1.1 ou ultérieur. Si vous utiliser un backend SSL différent vous pouvez essayer de définir les suites de chiffrement TLS 1.3 en utilisant l'option CURLOPT_SSL_CIPHER_LIST. Disponible à partir de PHP 7.3.0 et libcurl >= cURL 7.61.0. Disponible quand compilé avec OpenSSL >= 1.1.1.
CURLOPT_UNIX_SOCKET_PATH Permet l’utilisation de sockets de domaine Unix en tant que point de connexion et définit le chemin à la chaîne de caractères fournit. Ajouté en cURL 7.40.0. Disponible à partir de PHP 7.0.7.
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_USERNAME Le nom d'utilisateur à utiliser lors de l'authentification. Ajouté en cURL 7.19.1.
CURLOPT_PASSWORD Le mot de passe à utiliser lors de l'authentification. Ajouté en cURL 7.19.1.
CURLOPT_USERPWD Un nom d'utilisateur et un mot de passe formatés sous la forme "[username]:[password]" à utiliser pour la connexion.
CURLOPT_XOAUTH2_BEARER Spécifie le jeton d'accès OAuth 2.0. Ajouté en cURL 7.33.0. Disponible à partir de PHP 7.0.7.

value doit être un tableau pour les valeurs suivantes du paramètres option :

OptionDéfinir value àNotes
CURLOPT_CONNECT_TO Connecte à un hôte et à un port spécifiques au lieu de l'hôte et du port de l'URL. Accepte un tableau de chaîne de caractères ave le format HOST:PORT:CONNECT-TO-HOST:CONNECT-TO-PORT. Ajouté en cURL 7.49.0. Disponible à partir de PHP 7.0.7.
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.
CURLOPT_HTTPHEADER Un tableau de champs d'en-têtes HTTP à définir, au format array('Content-type: text/plain', 'Content-length: 100')
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_PROXYHEADER Un tableau d'en-têtes HTTP personalisé à passer aux proxies. Ajouté en cURL 7.37.0. Disponible à partir de PHP 7.0.7.
CURLOPT_QUOTE Un tableau de commandes FTP à exécuter sur le serveur avant la requête FTP.
CURLOPT_RESOLVE Fournissez une adresse personnalisée pour une paire hôte / port spécifique. Un tableau de chaîne de caractères de nom d'hôte, de port et d'adresse IP, chaque élément étant séparé par deux-points. Dans le format : array("example.com:80:127.0.0.1") Ajouté en cURL 7.21.3.

value doit être une ressource (utilisant fopen(), par exemple) pour les valeurs suivantes du paramètre option :

OptionDéfinissez le paramètre value à
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 le nom d'une fonction ou d'une Closure valide pour les valeurs suivantes du paramètres option :

OptionDéfinir value àNote
CURLOPT_HEADERFUNCTION Une fonction de rappel acceptant deux paramètres. Le premier est la ressource cURL, le second, une chaîne de caractères avec les données d'en-têtes à écrire. Ces données d'en-têtes doivent être écrites par cette fonction de rappel. Le nombre d'octets écrit sera retourné.  
CURLOPT_PASSWDFUNCTION Une fonction de rappel qui 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. Supprimée à partir de PHP 7.3.0.
CURLOPT_PROGRESSFUNCTION

Une fonction de rappel qui prend cinq arguments. Le premier est la ressource cURL, le second est le nombre total d'octets attendu à télécharger pendant le transfert, le troisième est le nombre d'octets téléchargés, le quatrième est le total d'octets attendu à uploader pendant le transfert, et le cinquième est le nombre d'octets uploadés.

Note:

The callback is only called when the CURLOPT_NOPROGRESS option is set to false.

Return a non-zero value to abort the transfer. In which case, the transfer will set a CURLE_ABORTED_BY_CALLBACK error.

 
CURLOPT_READFUNCTION Une fonction de rappel qui prend trois paramètres. Le premier est une ressource cURL, le second, une ressource de flux fournie à cURL via l'option CURLOPT_INFILE, et le troisième, la quantité maximale de données à lire. La fonction de rappel doit retourner une chaîne dont la taille est inférieure ou égale à la quantité de données demandées, habituellement en les lisant depuis la ressource de flux passée. Elle doit retourner une chaîne vide pour signaler la fin EOF.  
CURLOPT_WRITEFUNCTION Une fonction de rappel qui 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 rappel, il devient de votre responsabilité d'écrire les données. Doit retourner le nombre exact d'octets écrits ou le transfert échouera avec une erreur.  
CURLOPT_XFERFUNCTION Une fonction de rappel qui prend deux arguments. A un objectif identique à CURLOPT_PROGRESSFUNCTION mais est plus récente et est l'option préféree de cURL. Ajouté en cURL 7.32.0. Disponible à partir de PHP 8.2.0.

Autres valeurs :

OptionDéfinit le paramètre value en
CURLOPT_SHARE Un résultat de la fonction curl_share_init(). Fait que le gestionnaire cURL va utiliser les données depuis le gestionnaire partagé.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

VersionDescription
8.0.0handle attend désormais une instance de CurlHandle; auparavant; une resource était attendue.
7.3.15, 7.4.3 Introduction de la constante CURLOPT_HTTP09_ALLOWED.
7.3.0 Introduit CURLOPT_ABSTRACT_UNIX_SOCKET, CURLOPT_KEEP_SENDING_ON_ERROR, CURLOPT_PRE_PROXY, CURLOPT_PROXY_CAINFO, CURLOPT_PROXY_CAPATH, CURLOPT_PROXY_CRLFILE, CURLOPT_PROXY_KEYPASSWD, CURLOPT_PROXY_PINNEDPUBLICKEY, CURLOPT_PROXY_SSLCERT, CURLOPT_PROXY_SSLCERTTYPE, CURLOPT_PROXY_SSL_CIPHER_LIST, CURLOPT_PROXY_SSLKEY, CURLOPT_PROXY_SSLKEYTYPE, CURLOPT_PROXY_SSL_OPTIONS, CURLOPT_PROXY_SSL_VERIFYHOST, CURLOPT_PROXY_SSL_VERIFYPEER, CURLOPT_PROXY_SSLVERSION, CURLOPT_PROXY_TLSAUTH_PASSWORD, CURLOPT_PROXY_TLSAUTH_TYPE, CURLOPT_PROXY_TLSAUTH_USERNAME, CURLOPT_SOCKS5_AUTH, CURLOPT_SUPPRESS_CONNECT_HEADERS, CURLOPT_DISALLOW_USERNAME_IN_URL, CURLOPT_DNS_SHUFFLE_ADDRESSES, CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS, CURLOPT_HAPROXYPROTOCOL, CURLOPT_PROXY_TLS13_CIPHERS, CURLOPT_SSH_COMPRESSION, CURLOPT_TIMEVALUE_LARGE et CURLOPT_TLS13_CIPHERS.
7.0.7 Introduit CURL_HTTP_VERSION_2, CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE, CURL_HTTP_VERSION_2TLS, CURL_REDIR_POST_301, CURL_REDIR_POST_302, CURL_REDIR_POST_303, CURL_REDIR_POST_ALL, CURL_VERSION_KERBEROS5, CURL_VERSION_PSL, CURL_VERSION_UNIX_SOCKETS, CURLAUTH_NEGOTIATE, CURLAUTH_NTLM_WB, CURLFTP_CREATE_DIR, CURLFTP_CREATE_DIR_NONE, CURLFTP_CREATE_DIR_RETRY, CURLHEADER_SEPARATE, CURLHEADER_UNIFIED, CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE, CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE, CURLMOPT_MAX_HOST_CONNECTIONS, CURLMOPT_MAX_PIPELINE_LENGTH, CURLMOPT_MAX_TOTAL_CONNECTIONS, CURLOPT_CONNECT_TO, CURLOPT_DEFAULT_PROTOCOL, CURLOPT_DNS_INTERFACE, CURLOPT_DNS_LOCAL_IP4, CURLOPT_DNS_LOCAL_IP6, CURLOPT_EXPECT_100_TIMEOUT_MS, CURLOPT_HEADEROPT, CURLOPT_LOGIN_OPTIONS, CURLOPT_PATH_AS_IS, CURLOPT_PINNEDPUBLICKEY, CURLOPT_PIPEWAIT, CURLOPT_PROXY_SERVICE_NAME, CURLOPT_PROXYHEADER, CURLOPT_SASL_IR, CURLOPT_SERVICE_NAME, CURLOPT_SSL_ENABLE_ALPN, CURLOPT_SSL_ENABLE_NPN, CURLOPT_SSL_FALSESTART, CURLOPT_SSL_VERIFYSTATUS, CURLOPT_STREAM_WEIGHT, CURLOPT_TCP_FASTOPEN, CURLOPT_TFTP_NO_OPTIONS, CURLOPT_UNIX_SOCKET_PATH, CURLOPT_XOAUTH2_BEARER, CURLPROTO_SMB, CURLPROTO_SMBS, CURLPROXY_HTTP_1_0, CURLSSH_AUTH_AGENT et CURLSSLOPT_NO_REVOKE.

Exemples

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);
?>

Notes

Note:

Le fait de passer un tableau à la constante CURLOPT_POSTFIELDS encodera les données comme multipart/form-data, tandis que le fait de passer une chaîne encodée URL encodera les données comme application/x-www-form-urlencoded.

Voir aussi

To Top