(PHP 4 >= 4.0.2, PHP 5, PHP 7)
curl_setopt — Configura una opción para una transferencia cURL
Establece una opción en la sesión del recurso cURL.
ch
El recurso cURL devuelto por curl_init().
option
La opción CURLOPT_XXX a configurar.
value
Valor a configurar en la option
.
value
debe ser un bool
para los
siguientes valores del parámetro option
:
Opción | Establecer value a |
Notas |
---|---|---|
CURLOPT_AUTOREFERER |
TRUE para automáticamente establecer el valor del campo Referer:
en peticiones que siguen una redireción Location:.
|
|
CURLOPT_BINARYTRANSFER |
TRUE para devolver el resultado sin tratar
CURLOPT_RETURNTRANSFER está activado.
|
Desde PHP 5.1.3, esta opción no tiene efecto: el resultado sin tratar será
siempre retornado cuando
CURLOPT_RETURNTRANSFER sea usado.
|
CURLOPT_COOKIESESSION |
TRUE para usarse como una nueva cookie de "sesión". Forzará libcurl
a ignorar todas las cookies, se trata de cargar estas "cookies de sesión"
de la sesión anterior. Por defecto, libcurl siempre guarda y carga todas
las cookies, independientemente si hay cookies de sesión o no. Las cookies
de sesión son cookies sin fecha de caducidad y estan pensadas para
mantenerse activas y solo existir para esta "sesión".
|
|
CURLOPT_CERTINFO |
TRUE para mostrar información sobre certificación SSL al STDERR
en transferencias seguras.
|
Añadido en cURL 7.19.1
Disponible desde PHP 5.3.2.
Requiere CURLOPT_VERBOSE activado para que tenga efecto.
|
CURLOPT_CONNECT_ONLY |
TRUE le dice a la biblioteca que realice todas las autenticaciones de proxy requeridas
y la configuración de la conexión, pero no la transferencia de datos. Esta opción se
implementa para HTTP, SMTP y POP3.
|
Aladida en 7.15.2. Disponbible desde PHP 5.5.0. |
CURLOPT_CRLF |
TRUE para convertir nuevas líneas Unix a nuevas líneas CRLF
en transferencias.
|
|
CURLOPT_DNS_USE_GLOBAL_CACHE |
TRUE para usar caché DNS global. Esta opción no es
thread-safe y está activada por defecto.
|
|
CURLOPT_FAILONERROR |
TRUE para fallar con verbosidad si el código HTTP devuelto
es mayor o igual que 400. El comportamiento por defecto es devolver
la página normalmente, ignornado el código.
|
|
CURLOPT_SSL_FALSESTART |
TRUE para habilitar el inicio falso de TLS.
|
Añadida en cURL 7.42.0. Disponible desde PHP 7.0.7. |
CURLOPT_FILETIME |
TRUE para intentar obtener la fecha de modificación del
documento. Este valor puede obtenerse usando la opción
CURLINFO_FILETIME con
curl_getinfo().
|
|
CURLOPT_FOLLOWLOCATION |
TRUE para seguir cualquier encabezado
"Location: " que el servidor envíe como
parte del encabezado HTTP (observe la recursividad, PHP seguirá
tantos header "Location: " como se envíen,
a no ser que la opción CURLOPT_MAXREDIRS esté establecida).
|
|
CURLOPT_FORBID_REUSE |
TRUE para forzar a cerrar explicitamente la conexión cuando
se finalice el proceso y no guardarla para su reuso.
|
|
CURLOPT_FRESH_CONNECT |
TRUE para forzar el uso de una nueva conexión en lugar
de usar una en caché.
|
|
CURLOPT_FTP_USE_EPRT |
TRUE para usar EPRT (y LPRT) cuando se hacen descargas FTP
activas. Use FALSE para desactivar EPRT y LPRT y usar
PORT solamente.
|
|
CURLOPT_FTP_USE_EPSV |
TRUE para probar primero el comando EPSV para transferencias
FTP antes de volver a PASV. Establezca la opción a FALSE
para desactivar EPSV.
|
|
CURLOPT_FTP_CREATE_MISSING_DIRS |
TRUE para crear directorios faltantes cuando una operación
se encuentra con una ruta que actualmente no existe.
|
|
CURLOPT_FTPAPPEND |
TRUE para añadir al fichero remoto en lugar de
sobreescribirlo.
|
|
CURLOPT_TCP_NODELAY |
TRUE para deshabilitar el algoritmo de TCP de Nagle, el cual intenta minimizar
el número de paquetes pequeños en la red.
|
Disponible desde PHP 5.2.1 para versiones compiladas con libcurl 7.11.2 o superior. |
CURLOPT_FTPASCII |
Un alias de
CURLOPT_TRANSFERTEXT . Para usar en su lugar.
|
|
CURLOPT_FTPLISTONLY |
TRUE para solo listar los nombres de un directorio FTP
directorio.
|
|
CURLOPT_HEADER |
TRUE para incluir el header en el output.
|
|
CURLINFO_HEADER_OUT |
TRUE para seguir la cadena de la petición del recurso.
|
Disponible desde PHP 5.1.3. El prefijo CURLINFO_
es intencionado.
|
CURLOPT_HTTPGET |
TRUE para resetear la petición HTTP a GET.
Puesto que GET es el método por defecto, solo es necesario si
el método fue cambiado.
|
|
CURLOPT_HTTPPROXYTUNNEL |
TRUE para usar un tunel a través de un proxy HTTP.
|
|
CURLOPT_MUTE |
TRUE para completar silenciosamente en lo que se refiere
a las funciones cURL.
|
Eliminado en cURL 7.15.5 (Se puede usar CURLOPT_RETURNTRANSFER en su lugar) |
CURLOPT_NETRC |
TRUE para escanear el fichero ~/.netrc
y buscar un usuario y contraseña para establecer una conexión
con el sitio remoto.
|
|
CURLOPT_NOBODY |
TRUE para excluir el body del output.
El método de petición es establecido a HEAD. Si se cambia a FALSE
no cambia el método a GET.
|
|
CURLOPT_NOPROGRESS |
|
|
CURLOPT_NOSIGNAL |
TRUE para ignorar cualquier función cURL que cause una
señal a ser enviada al proceso PHP. Esta opción está activada por
defecto en multi-hilo SAPI, entonces las opciones de timeout pueden ser usadas.
|
Añadido en cURL 7.10. |
CURLOPT_PATH_AS_IS |
TRUE para no manejar secuencias de puntos.
|
Añadida en cURL 7.42.0. Disponible desde PHP 7.0.7. |
CURLOPT_PIPEWAIT |
TRUE para esperar por 'pipelining'/multiplexación.
|
Añadida en cURL 7.43.0. Disponible desde PHP 7.0.7. |
CURLOPT_POST |
TRUE para hacer un HTTP POST normal. Este POST del tipo
application/x-www-form-urlencoded,
el más común en formularios HTML.
|
|
CURLOPT_PUT |
TRUE para hacer un HTTP PUT de un fichero. El fichero a subir debe
establecerse en CURLOPT_INFILE y
CURLOPT_INFILESIZE .
|
|
CURLOPT_RETURNTRANSFER |
TRUE para devolver el resultado de la transferencia como string
del valor de curl_exec() en lugar de mostrarlo
directamente.
|
|
CURLOPT_SAFE_UPLOAD |
TRUE para deshabilitar el soporta para el prefijo @ para
cargar ficheros en CURLOPT_POSTFIELDS , lo que
significa que los valores que empiecen por @ pueden ser pasados
de forma segura como campos. Se podría usar CURLFile
en su lugar para las cargas.
|
Añadido en PHP 5.5.0 con FALSE como valor predeterminado. PHP 5.6.0
cabia este valor predeterminado a TRUE . PHP 7 elimina esta opción;
la interfaz de CURLFile debe emplearse para subir ficheros.
|
CURLOPT_SASL_IR |
TRUE para habilitar el envío de la respuesta inicial en el primer paquete.
|
Añadida en cURL 7.31.10. Disponible desde PHP 7.0.7. |
CURLOPT_SSL_ENABLE_ALPN |
FALSE para inhabilitar ALPN en la negociación de SSL (si libcurl del
«backend» de SSL está construido para admitirla), lo cual se puede usar para
negiaciar http2.
|
Añadida en cURL 7.36.0. Disponible desde PHP 7.0.7. |
CURLOPT_SSL_ENABLE_NPN |
FALSE para inhabilitar NPN en la negociación de SSL (si libcurl del
«backend» de SSL está construido para admitirla), lo cual se puede usar para
negiaciar http2.
|
Añadida en cURL 7.36.0. Disponible desde PHP 7.0.7. |
CURLOPT_SSL_VERIFYPEER |
FALSE para que cURL no verifique el peer del certificado.
Para usar diferentes certificados para la verificación se
pueden especificar con la opción CURLOPT_CAINFO
o se puede especificar el directorio donde se encuentra
el certificado con la opción CURLOPT_CAPATH .
|
TRUE por omisión desde cURL 7.10. Paquete instalado por defecto en la versión
CURL 7.10.
|
CURLOPT_SSL_VERIFYSTATUS |
TRUE para verificar el estado del certificado.
|
Añadida en cURL 7.41.0. Disponible desde PHP 7.0.7. |
CURLOPT_TCP_FASTOPEN |
TRUE Para habilitar la Apertura Rápida de TCP (TCP Fast Open).
|
Añadida en cURL 7.49.0. Disponible desde PHP 7.0.7. |
CURLOPT_TFTP_NO_OPTIONS |
TRUE para no enviar peticiones de opciones de TFTP.
|
Añadida en cURL 7.48.0. Disponible desde PHP 7.0.7. |
CURLOPT_TRANSFERTEXT |
TRUE para usar modo ASCII para transferencias FTP.
En LDAP, obtiene los datos en texto plano en lugar de HTML. En
sistemas Windows, no estabecerá STDOUT en
modo binario.
|
|
CURLOPT_UNRESTRICTED_AUTH |
TRUE para prevenir el envio de usuario y contraseña cuando
se siguen locations (usando
CURLOPT_FOLLOWLOCATION ), incluso cuando
el hostname es diferente.
|
|
CURLOPT_UPLOAD |
TRUE preparar cURL para subir un fichero.
|
|
CURLOPT_VERBOSE |
TRUE para mostrar información verbose. Escribe la
salida en STDERR, o el fichero especificado usando
CURLOPT_STDERR .
|
value
debe ser un integer para los
siguientes valores del parámetro option
:
Opción | Establecer value a |
Notas |
---|---|---|
CURLOPT_BUFFERSIZE |
Tamaño del búfer a usar por cada lectura. De todas formas, no hay ninguna garantía de que la petición usará todo el búfer. | Añadido en cURL 7.10. |
CURLOPT_CLOSEPOLICY |
Uno de los valores de CURLCLOSEPOLICY_* .
|
Eliminada en PHP 5.6.0. |
CURLOPT_CONNECTTIMEOUT |
Número de segundos a esperar cuando se está intentado conectar. Use 0 para esperar indefinidamente. | |
CURLOPT_CONNECTTIMEOUT_MS |
Número de milisegundos a esperar cuando se está intentado conectar. Use 0 para esperar indefinidamente. Si se ha compilado libcurl para utilizar el sistema estándar de resolución de nombres, esta porción de conexión utilizará una resolución completa de un segundo en tiempos de expiración, con un mínimo permitido de un segundo. | Añadido en cURL 7.16.2. Disponible desde PHP 5.2.3. |
CURLOPT_DNS_CACHE_TIMEOUT |
Número de segundos a mantener las entradas DNS en memoria. Esta opción está establecida a 120 (2 minutos) por defecto. | |
CURLOPT_EXPECT_100_TIMEOUT_MS |
El tiempo de espera para respuestas «Expect: 100-continue», en milisegundos. El valor predeterminado es 1000 milisegundos. | Añadida en cURL 7.36.0. Disponible desde PHP 7.0.7. |
CURLOPT_FTPSSLAUTH |
Método de autenticación FTP (cuando está activado): CURLFTPAUTH_SSL (prueba SSL primero), CURLFTPAUTH_TLS (prueba TLS primero), o CURLFTPAUTH_DEFAULT (hacer que cURL decida). | Añadido en cURL 7.12.2. |
CURLOPT_HEADEROPT |
Cómo tratar con cabeceras. una de las siguientes constantes:
CURLHEADER_UNIFIED : las cabeceras especificadas en
CURLOPT_HTTPHEADER se usarán en peticiones
tanto a servidores como a proxies. Con esta opción habilitada,
CURLOPT_PROXYHEADER no tendrá efecto.
CURLHEADER_SEPARATE : hace que las
cabeceras CURLOPT_HTTPHEADER solamente sean enviadas a
un servidor y no a un proxy. Las cabeceras de proxies deben establecerse con
CURLOPT_PROXYHEADER para poder usarlas. Observe que si
se envía una petición no CONNECT a un proxy, libcurl enviará tanto
las cabeceras de servidor como del proxy. Al realizar CONNECT, libcurl
enviará cabeceras CURLOPT_PROXYHEADER solamente al
proxy y luego cabeceeras CURLOPT_HTTPHEADER
solamente al servidor.
Lo predeterminado es CURLHEADER_SEPARATE a partir de cURL
7.42.1, y CURLHEADER_UNIFIED anteriormente.
|
Añadida en cURL 7.37.0. Disponible desde PHP 7.0.7. |
CURLOPT_HTTP_VERSION |
CURL_HTTP_VERSION_NONE (por defecto, hacer que CURL
decida que versión a usar),
CURL_HTTP_VERSION_1_0 (fuerza HTTP/1.0),
or CURL_HTTP_VERSION_1_1 (fuerza HTTP/1.1).
|
|
CURLOPT_HTTPAUTH |
Los métodos de autenticación HTTP. Las opciones son:
El separador | o operador puede ser usado para combinar más de un método. Si se utiliza, cURL comprobará en el servidor remoto que métodos soporta y utilizará el más adecuado.
|
|
CURLOPT_INFILESIZE |
El tamaño esperado en bytes, del fichero cuando se está subiendo un
fichero al sitio remoto. Téngase en cuenta que el uso de esta opción no detendrá libcurl
a la hora de enviar más datos, exactamente lo que se envía depende de
CURLOPT_READFUNCTION .
|
|
CURLOPT_LOW_SPEED_LIMIT |
La velocidad de transferencia, en bytes por segundo, que la transferencia debería
estar por debajo durante CURLOPT_LOW_SPEED_TIME
segundos para PHP a considerar que la transferencia es demasiado lenta y debe abortarse.
|
|
CURLOPT_LOW_SPEED_TIME |
Número en segundos en que la velocidad de transferencia debería estar debajo de
CURLOPT_LOW_SPEED_LIMIT antes que PHP considere
que la transferencia es demasiado lenta y debe abortarse.
|
|
CURLOPT_MAXCONNECTS |
Número máximo de conexiones persistentes que están permitidas.
Cuando se llega al límite, se utiliza
CURLOPT_CLOSEPOLICY para determinar que
conexión debe cerrarse.
|
|
CURLOPT_MAXREDIRS |
Número máximo de redirecciones HTTP a seguir. Use esta opción
con CURLOPT_FOLLOWLOCATION .
|
|
CURLOPT_PORT |
Puerto alternativo a conectarse. | |
CURLOPT_POSTREDIR |
Una máscara de bit de 1 (301 Movido permanentemente), 2 (302 Encontrado)
y 4 (303 Ver otro) si el método POST de HTTP debería ser mantenido
cuando CURLOPT_FOLLOWLOCATION está establecido y
ocurre un tipo específico o una redirección.
|
Añadido en cURL 7.19.1. Disponible des PHP 5.3.2. |
CURLOPT_PROTOCOLS |
Máscara de los valores
Las opciones para válidos procolos son:
|
Añadido en cURL 7.19.4. |
CURLOPT_PROXYAUTH |
Método de autenticación HTTP para usar conexiones vía proxy.
Usa el mismo tipo de máscaras descritas en
CURLOPT_HTTPAUTH . Para autenticación proxy,
solamente CURLAUTH_BASIC y
CURLAUTH_NTLM están actualmente soportadas.
|
Añadido en cURL 7.10.7. |
CURLOPT_PROXYPORT |
Número del puerto para usar en la conexión proxy. Este puerto también
puede configurase en CURLOPT_PROXY .
|
|
CURLOPT_PROXYTYPE |
Puede ser CURLPROXY_HTTP (por defecto),
CURLPROXY_SOCKS4 ,
CURLPROXY_SOCKS5 ,
CURLPROXY_SOCKS4A o
CURLPROXY_SOCKS5_HOSTNAME .
|
Añadido en cURL 7.10. |
CURLOPT_REDIR_PROTOCOLS |
Máscara de valores CURLPROTO_* . Si se usa, esta máscara
limitará que protocolos usará libcurl en una transferencia que sigue una
redireción cuando CURLOPT_FOLLOWLOCATION está activado.
Esto permite limitar a específicas transferencias que grupo de protocolos
utilizar en redireciones. Por defecto libcurl aceptará todos los protocolos
excepto FILE y SCP. Esto es nuevo si se compara con versiones anteriores a
7.19.4 donde se seguían incodicionalmente todos los protocolos soportados.
Vea también CURLOPT_PROTOCOLS para los valores de las
constantes.
|
Añadido en cURL 7.19.4. |
CURLOPT_RESUME_FROM |
El punto, en bytes desde donde continuar una transferencia. | |
CURLOPT_SSL_OPTIONS |
Establecer las opciones de funcionamento de SSL, las cuales son una máscara de bits de las siguientes constantes:
CURLSSLOPT_ALLOW_BEAST : no intentar usar
ningún método alternativo para defectos de seguridad en los protocolos SSL3 y TLS1.0.
CURLSSLOPT_NO_REVOKE : inhabilitar la comprobación
de revocación de certificados para aquellos «backends» de SSL donde tal funcionamiento
está presente.
|
Añadida en cURL 7.25.0. Disponible desde PHP 7.0.7. |
CURLOPT_SSL_VERIFYHOST |
1 para comprobar que existe un nombre común en el peer del certificado SSL. 2 para comprobar que existe un nombre común y también para verificar que el hostname coinicide con el proporcionado. 0 para no comprobar nombres. En entornos de producción el valor de esta opción debe mantenerse a 2 (valor predeterminado). | Soporte para el valor 1 eliminado en cURL 7.28.1 |
CURLOPT_SSLVERSION |
Una de las constantes 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) o
CURL_SSLVERSION_TLSv1_2 (6).
|
|
CURLOPT_STREAM_WEIGHT |
Establecer el peso del flujo numérico (un número entre 1 y 256). | Añadida en cURL 7.46.0. Disponible desde PHP 7.0.7. |
CURLOPT_TIMECONDITION |
Como se trata CURLOPT_TIMEVALUE .
Utilice CURL_TIMECOND_IFMODSINCE para devolver
la página solamente si fue modificada desde el tiempo especificado en
CURLOPT_TIMEVALUE . Si no fué modificada, se
devolverá "304 Not Modified" en el header asumiendo
que CURLOPT_HEADER es TRUE .
Utilice CURL_TIMECOND_IFUNMODSINCE para el efecto
contrario. CURL_TIMECOND_IFMODSINCE está activado
por defecto.
|
|
CURLOPT_TIMEOUT |
Número máximo de segundos permitido para ejectuar funciones cURL. | |
CURLOPT_TIMEOUT_MS |
Número máximo en milisegundos permitido para ejecutar funciones cURL. Si se ha compilado libcurl para utilizar el sistema estándar de resolución de nombres, esta porción de conexión utilizará una resolución completa de un segundo en tiempos de expiración, con un mínimo permitido de un segundo. | Añadido en cURL 7.16.2. Disponible desde PHP 5.2.3. |
CURLOPT_TIMEVALUE |
Tiempo en segundos desde el 1 de enero de 1970. El tiempo será usado
por CURLOPT_TIMECONDITION . Por defecto,
se utiliza CURL_TIMECOND_IFMODSINCE .
|
|
CURLOPT_MAX_RECV_SPEED_LARGE |
Si una descarga supera esta velocidad (en bytes por segundo) en su tasa media de transferencia, ésta se detendrá temporalmente para mantener la media igual o inferior al valor del parámetro. Por omisión, la velocidad es ilimitada. | Añadido en cURL 7.15.5. Disponible desde PHP 5.4.0. |
CURLOPT_MAX_SEND_SPEED_LARGE |
Si una subida supera esta velocidad (en bytes por segundo) en su tasa media de transferencia, ésta se detendrá temporalmente para mantener la media igual o inferior al valor del parámetro. Por omisión, la velocidad es ilimitada. | Añadido en cURL 7.15.5. Disponible desde PHP 5.4.0. |
CURLOPT_SSH_AUTH_TYPES |
Una máscara de bits que consta de una o más de
CURLSSH_AUTH_PUBLICKEY ,
CURLSSH_AUTH_PASSWORD ,
CURLSSH_AUTH_HOST ,
CURLSSH_AUTH_KEYBOARD . Establece a
CURLSSH_AUTH_ANY para que libcurl elija uno.
|
Añadido en cURL 7.16.1. |
CURLOPT_IPRESOLVE |
Permite a una aplicación seleccionar el tipo de dirección IP a usar cuando
se resuelven nombres de host. Esto es interesante solamente al usar nombres de host que
resuelven direcciones usando más de una versión de IP. Los valores posibles son
CURL_IPRESOLVE_WHATEVER ,
CURL_IPRESOLVE_V4 ,
CURL_IPRESOLVE_V6 ; el predeterminado es
CURL_IPRESOLVE_WHATEVER .
|
Añadida en cURL 7.10.8. |
CURLOPT_FTP_FILEMETHOD |
Indicar a curl qué método empelar para alcanzar un fichero en un servidor FTP(S). Los valores posibles son
CURLFTPMETHOD_MULTICWD ,
CURLFTPMETHOD_NOCWD y
CURLFTPMETHOD_SINGLECWD .
|
Añadida en cURL 7.15.1. Disponible desde PHP 5.3.0. |
El value
debe ser una string para los
siguientes valores del parámetro option
:
Opción | Configurar value a |
Notas |
---|---|---|
CURLOPT_CAINFO |
Nombre del fichero que contiene uno o más certificados para verificar
el peer. Solo tiene sentido cuando se utiliza en combinación de
CURLOPT_SSL_VERIFYPEER .
|
Podría requerir una ruta absoluta. |
CURLOPT_CAPATH |
Directorio que contiene múltiple certificados CA. Utilice esta opción
junto con CURLOPT_SSL_VERIFYPEER .
|
|
CURLOPT_COOKIE |
Contenido de "Cookie: " del header para ser usado en la petición HTTP. Observe que múltiples cookies van separadas con punto y coma seguidas por un espacio (ej., "fruit=apple; colour=red") | |
CURLOPT_COOKIEFILE |
Nombre del fichero que contiene datos de las cookies. El fichero de cookies puede estar en formato Netscape, o simplemente tipo HTTP plano dentro de un fichero. Si el nombre es una cadena vacía, no se cargarán cookies, aunque el manejo de cookies aún está habilitado. | |
CURLOPT_COOKIEJAR |
Nombre del fichero donde guardar cookies internas cuando se cierra se cierra, por e.j. después de llamar a curl_close. | |
CURLOPT_CUSTOMREQUEST |
Método de petición personalizado a usar en lugar de "GET" o "HEAD" cuando se realiza una petición HTTP. Es útil para hacer "DELETE" o otros tipos de peticiones HTTP menos comunes. "GET", "POST", "CONNECT" y otros, son valores válidos. Ej. No introduzca toda la petición HTTP aquí, seria incorrecto introducir: "GET /index.html HTTP/1.0\r\n\r\n".
|
|
CURLOPT_DEFAULT_PROTOCOL |
El protocolo predeterminado a usar si al URL le falta un nombre de esquema. |
Añadida en cURL 7.45.0. Disponible desde PHP 7.0.7. |
CURLOPT_DNS_INTERFACE |
Establecer el nombre de la interfaz de red a la que el resolvente de DNS debe vincularse. Debe ser un nombre de interfaz (no una dirección). |
Añadida en cURL 7.33.0. Disponible desde PHP 7.0.7. |
CURLOPT_DNS_LOCAL_IP4 |
Establecer la dirección IPv4 local a la que debe vincularse el resolvente. El argumento debe contener una dirección IPv4 numérica dada como cadena. |
Añadida en cURL 7.33.0. Disponible desde PHP 7.0.7. |
CURLOPT_DNS_LOCAL_IP6 |
Establecer la dirección IPv6 local a la que debe vincularse el resolvente. El argumento debe contener una dirección IPv6 numérica dada como cadena. |
Añadida en cURL 7.33.0. Disponible desde PHP 7.0.7. |
CURLOPT_EGDSOCKET |
Es como CURLOPT_RANDOM_FILE , con excepción que
en lugar de un fichero se utiliza un Entropy Gathering Daemon socket.
|
|
CURLOPT_ENCODING |
Contenido del valor "Accept-Encoding: " en el header. Esto permite decodificar la respuesta. Los formatos de codificación disponibles son "identity", "deflate", y "gzip". Si el valor se envía vacío, "", se enviarán todos los tipos de condificación soportados. | Añadido en cURL 7.10. |
CURLOPT_FTPPORT |
El valor que será usando para obtener la dirección IP a usar para la instrucción FTP "PORT". La instrucción "PORT" dice al servidor remoto a qué dirección IP se debe conectar. La cadena puede ser una dirección IP, el nombre de un servidor o un interfaz de red (bajo Unix), o simplemente '-' para usar la dirección IP por defecto del sistema. | |
CURLOPT_INTERFACE |
Nombre del interfaz de salida a usar. Puede ser el nombre del interfaz, una dirección IP o el nombre de un servidor. | |
CURLOPT_KEYPASSWD |
El password requerido para usar la clave privada CURLOPT_SSLKEY
o CURLOPT_SSH_PRIVATE_KEYFILE .
|
Añadido en cURL 7.16.1. |
CURLOPT_KRB4LEVEL |
Nivel de seguridad KRB4 (Kerberos 4). Cualquiera de los siguientes valores
(en orden de menos a más potentes) son válidos:
"clear",
"safe",
"confidential",
"private"..
Si la cadena no coincide con alguno de estos valores,
será usado "private". Configure esta opción a NULL
para desactivar seguridad KRB4. Actualmente la seguridad KRB4 solo funciona
con transaciones FTP.
|
|
CURLOPT_LOGIN_OPTIONS |
Se puede usar para establecer las opciones de inicio de sesión específicas del protocolo, tales como el
mecanismoe de autenticación preferido mediante "AUTH=NTLM" o "AUTH=*",
debiéndose ser usada junto con la opción
CURLOPT_USERNAME .
|
Añadida en cURL 7.34.0. Disponible desde PHP 7.0.7. |
CURLOPT_PINNEDPUBLICKEY |
Establecer la clave pública fijada. La cadena puede ser el nombre de fichero de la clave pública fijada. El formato de fichero esperado es "PEM" o "DER". La cadena también puede ser cualquier númbero de «hashes» sha256 codificados en base64 precedidos de "sha256//" y separados por ";". | Añadida en cURL 7.39.0. Disponible desde PHP 7.0.7. |
CURLOPT_POSTFIELDS |
Todos los datos para enviar vía HTTP "POST".
para enviar un fichero, prefija el nombre del fichero con @ y
utiliza la ruta completa. Se puede especificar explícitamente el tipo de fichero
añadiendo el tipo al nombre del fichero, en el formato
';type=mimetype'. Se puede enviar una cadena urlencoded
como 'para1=val1¶2=val2&...'
o también como un array con el nombre del campo como key y los datos como value.
Si value es un array, el
encabezado Content-Type será definido como
multipart/form-data.
A partir de PHP 5.2.0, value debe ser un array si los archivos son
pasados a esta opción con el prefijo @.
A partir de PHP 5.5.0, el prefijo @ está obsoleto, por lo que
los ficheros se pueden enviar usando CURLFile. El prefijo
@ puede ser deshabilitado por seguridad de proporcionar
valores que comienzan con @ estableciendo la opción
CURLOPT_SAFE_UPLOAD a TRUE .
|
|
CURLOPT_PRIVATE |
Cualquier dato que debería estar asociado con este manejador de cURL. Estos datos
puede ser recuperados posteriormente con la
opción CURLINFO_PRIVATE de
curl_getinfo(). cURL no hace nada con estos datos.
Al emplear un multimanejador de cURL, estos datos privados son típicamente una
clave única para identificar un manejador estándar de cURL.
|
Añadida en cURL 7.10.3. |
CURLOPT_PROXY |
El proxy HTTP para enviar peticiones a través de tunel. | |
CURLOPT_PROXY_SERVICE_NAME |
El nombre del servicio de autenticación del proxy. | Añadida en cURL 7.34.0. Disponible desde PHP 7.0.7. |
CURLOPT_PROXYUSERPWD |
Usuario y contraseña con el siguiente formato "[username]:[password]" para usarse en la conexión al proxy. | |
CURLOPT_RANDOM_FILE |
Nombre del fichero a ser usado para generar números aleatorios para el SSL. | |
CURLOPT_RANGE |
Rango(s) de datos para obtener en el formato "X-Y" donde X y Y son opcionales. Transferencias HTTP también soportan varios intérvalos, separados por comas en el formato "X-Y,N-M". | |
CURLOPT_REFERER |
Contenido del Header "Referer: " para ser usado en la petición HTTP. | |
CURLOPT_SERVICE_NAME |
El nombre del servicio de autenticación. | Añadida en cURL 7.43.0. Disponible desde PHP 7.0.7. |
CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 |
Un string que contiene 32 dígitos hexadecimales. El string debe ser el MD5 checksum de la clave pública del host remoto, y libcurl rechazará la conexión a el host a menos que el md5sums coincida. Esta opción es sólo para las transferencias SCP y SFTP. | Añadido en cURL 7.17.1. |
CURLOPT_SSH_PUBLIC_KEYFILE |
El nombre de el fichero de la clave pública. Si no se utiliza, libcurl por omisión usa $HOME/.ssh/id_dsa.pub si la variable de entorno HOME es establecida, y "id_dsa.pub" en el directorio actual si HOME no está establecida. | Añadido en cURL 7.16.1. |
CURLOPT_SSH_PRIVATE_KEYFILE |
El nombre de el fichero de la clave privada. Si no se utiliza, libcurl por
omisión usa $HOME/.ssh/id_dsa si la variable de entorno HOME es establecida,
y "id_dsa" en el directorio actual si HOME no está establecida.
Si el fichero está protegido con contraseña, establecer la contraseña con la
constante CURLOPT_KEYPASSWD .
|
Añadido en cURL 7.16.1. |
CURLOPT_SSL_CIPHER_LIST |
Lista de ciphers a ser usados por SSL. Por ejemplo, RC4-SHA y TLSv1 es una lista válida de ciphers. | |
CURLOPT_SSLCERT |
Nombre del fichero que contiene un certificado con formato PEM. | |
CURLOPT_SSLCERTPASSWD |
Contraseña requerida para usar el certificado
CURLOPT_SSLCERT .
|
|
CURLOPT_SSLCERTTYPE |
Formato del certificado. Los formatos soportados son "PEM" (por defecto), "DER", y "ENG". | Añadido en cURL 7.9.3. |
CURLOPT_SSLENGINE |
El identificador para el crypto engine de la clave privada SSL
especificada en CURLOPT_SSLKEY .
|
|
CURLOPT_SSLENGINE_DEFAULT |
Identificador para el crypto engine usado para operaciones crypto asimétricas. | |
CURLOPT_SSLKEY |
Nombre del fichero que contiene la clave privada SSL. | |
CURLOPT_SSLKEYPASSWD |
Contraseña secreta requerida para usar la clave privada SSL especificada en
|
|
CURLOPT_SSLKEYTYPE |
Tipo de llave privada SSL especificada en
CURLOPT_SSLKEY . Los tipos de claves soportadas son
"PEM" (default), "DER",
y "ENG".
|
|
CURLOPT_UNIX_SOCKET_PATH |
Habilita el uso de sockets de dominio Unix como extremos de conexión y establece la ruta al string dado. | Añadida en cURL 7.40.0. Disponible desde PHP 7.0.7. |
CURLOPT_URL |
Dirección URL a capturar. Este valor también puede ser configurado cuando se inicia una sesión con curl_init(). | |
CURLOPT_USERAGENT |
Contenido del header "User-Agent: " a ser usado en la petición HTTP. | |
CURLOPT_USERNAME |
El nombre de usuario a emplear en la autenticación. | Añadida en cURL 7.19.0. Disponible desde PHP 5.5.0. |
CURLOPT_USERPWD |
Nombre de usuario y contraseña siguiendo el formato "[username]:[password]" para ser usado en la conexión. | |
CURLOPT_XOAUTH2_BEARER |
Especifica el «token» de acceso de OAuth 2.0. | Añadida en cURL 7.33.0. Disponible desde PHP 7.0.7. |
El value
debe ser un array para los
siguientes valores del parámetro option
:
Opción | Configurar value a |
Notas |
---|---|---|
CURLOPT_CONNECT_TO |
Se conecta a un puerto y host específicos en lugar del puerto y host del URL. Acepta un array de cadenas con el formato HOST:PORT:CONNECT-TO-HOST:CONNECT-TO-PORT. | Añadida en cURL 7.49.0. Disponible desde PHP 7.0.7. |
CURLOPT_HTTP200ALIASES |
Array de respuestas HTTP 200 que serán tratadas como respuestas válidas y no como errores. | Añadido en cURL 7.10.3. |
CURLOPT_HTTPHEADER |
Un array de campos a configurar para el header HTTP, en el formato:
array('Content-type: text/plain', 'Content-length: 100')
|
|
CURLOPT_POSTQUOTE |
Un array de comandos FTP a ejecutar en el servidor después de que se realice la petición FTP. | |
CURLOPT_PROXYHEADER |
Un array de cabeceras HTTP personalizadas a pasar a los proxies. | Añadida en cURL 7.37.0. Disponible desde PHP 7.0.7. |
CURLOPT_QUOTE |
Un array de comandos FTP a ejecutar en el servidor antes de que se realice la petición FTP. |
El value
debe ser un recurso de flujo (usando
fopen(), por ejemplo) para los siguientes valores del
parámetro option
:
Opción | Configurar value a |
---|---|
CURLOPT_FILE |
El fichero en el que el proceso de transferencia guardará el resultado. Por defecto es STDOUT (la ventana del navegador). |
CURLOPT_INFILE |
El fichero que el proceso de transferencia debe leer a la hora de subir un fichero. |
CURLOPT_STDERR |
Localización alternativa para mostrar los errores en lugar de STDERR. |
CURLOPT_WRITEHEADER |
El fichero donde guardar la parte del header durante la transferencia. |
value
debería ser el nombre de una función válida o un objeto Closure
para los siguientes valores del parámetro option
:
Opción | Configurar value a |
---|---|
CURLOPT_HEADERFUNCTION |
Una llamada de retorno que acepta dos parámetros. El primero es el recurso cURL, el segundo es un string con los datos de la cabecera a escribir. Los datos de la cabecera deben ser escritos por esta llamada de retorno. Devuelve el número de bytes escritos. |
CURLOPT_PASSWDFUNCTION |
Una llamada de retorno que acepta tres parámetros. El primero es el recurso cURL, el segundo es un string que contiene la contraseña, y el tercero es la longitud máxima para la contraseña. Devuelve un string que contiene la contraseña. |
CURLOPT_PROGRESSFUNCTION |
Una llamada de retorno que acepta cinco parámetros. El primero es el recurso cURL, el segundo es el número total de bytes que se espera descargar en esta transferencia, el tercero es el número de bytes descargados hasta ahora, el cuarto es el número total de bytes que se espera subir en esta transferencia, y el quinto es el número de bytes subidos hasta ahora.
Devuelve un valor distinto de cero para abortar la transferencia. En este caso, la
transferencia establecerá un error
|
CURLOPT_READFUNCTION |
Una llamada de retorno que acepta tres parámetros.
El primero es el recurso cURL, el segundo es un
recurso de flujo de datos proporcionado a través de la opción
CURLOPT_INFILE , y el tercero es la máxima
cantidad de datos a leer. La llamada de retorno debe devolver un string
con la misma longitud o menor que la cantidad de datos pedidos,
normalmente leyéndolos del recurso de flujo de datos pasado. Debe
devolver una cadena vacía para marcar el EOF.
|
CURLOPT_WRITEFUNCTION |
Una llamada de retorno que acepta dos parámetros. El primero es el recurso cURL, el segundo es un string con los datos a escribir. Los datos deben ser guardados por esta llamada de retorno. Debe devolver el número exacto de bytes escritos o la transferencia será abortada con un error. |
Otros valores:
Opción | Establecer value a |
---|---|
CURLOPT_SHARE |
Un resultado de curl_share_init(). Hace que el gestor de cURL use los datos del gestor compartido. |
Devuelve TRUE
en caso de éxito o FALSE
en caso de error.
Versión | Descripción |
---|---|
7.0.7 |
Se introdujeron 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 y
CURLSSLOPT_NO_REVOKE .
|
7.0.0 |
Se ha eliminado el soporte para inhabilitar la opción CURLOPT_SAFE_UPLOAD .
Todas las subidas de ficheros de curl deben emplear CURLFile.
|
5.6.0 |
CURLOPT_SAFE_UPLOAD ahore es TRUE de forma predeterminada.
|
5.6.0 |
Se eliminó CURLOPT_CLOSEPOLICY y sus valores asociados.
|
5.5.0 |
Se añadió el recurso cURL como el primer parámetro de la
llamada de retorno CURLOPT_PROGRESSFUNCTION .
|
5.5.0 |
Se introdujo CURLOPT_SHARE .
|
5.3.0 |
Se introdujo CURLOPT_PROGRESSFUNCTION .
|
5.2.10 |
Se introdujo CURLOPT_PROTOCOLS , y
CURLOPT_REDIR_PROTOCOLS .
|
5.2.4 |
Se introdujo CURLOPT_PRIVATE .
|
5.1.0 |
Se introdujo CURLOPT_AUTOREFERER ,
CURLOPT_BINARYTRANSFER ,
CURLOPT_FTPSSLAUTH ,
CURLOPT_PROXYAUTH , y
CURLOPT_TIMECONDITION .
|
5.0.0 |
Se introdujo CURLOPT_FTP_USE_EPRT ,
CURLOPT_NOSIGNAL ,
CURLOPT_UNRESTRICTED_AUTH ,
CURLOPT_BUFFERSIZE ,
CURLOPT_HTTPAUTH ,
CURLOPT_PROXYPORT ,
CURLOPT_PROXYTYPE ,
CURLOPT_SSLCERTTYPE , y
CURLOPT_HTTP200ALIASES .
|
Ejemplo #1 Inicializar una nueva sesión de cURL y obtener una página web
<?php
// Crear un nuevo recurso cURL
$ch = curl_init();
// Configurar URL y otras opciones apropiadas
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch, CURLOPT_HEADER, false);
// Capturar la URL y pasarla al navegador
curl_exec($ch);
// Cerrar el recurso cURL y liberar recursos del sistema
curl_close($ch);
?>
Ejemplo #2 Subir un fichero (obsoleto a partir de PHP 5.5.0)
<?php
/* http://localhost/upload.php:
print_r($_POST);
print_r($_FILES);
*/
$ch = curl_init();
$data = array('name' => 'Foo', 'file' => '@/home/user/test.png');
curl_setopt($ch, CURLOPT_URL, 'http://localhost/upload.php');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_SAFE_UPLOAD, false); // requerido a partir de PHP 5.6.0
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_exec($ch);
?>
El resultado del ejemplo sería:
Array ( [name] => Foo ) Array ( [file] => Array ( [name] => test.png [type] => image/png [tmp_name] => /tmp/phpcpjNeQ [error] => 0 [size] => 279 ) )
Nota:
Si pasamos un array a
CURLOPT_POSTFIELDS
codificará los datos como multipart/form-data, pero si pasamos una cadena URL-encoded codificará los datos como application/x-www-form-urlencoded.