2012-05-13 29 views
16

He estado buscando una manera de especificar los datos de cookie para CURL. He encontrado algunas soluciones sobre cómo guardar las cookies de una página visitada, pero eso no es lo que necesito. Lo que quiero es escribir los datos para la cookie, así que CURL la usa.¿Es posible establecer el contenido de la cookie con CURL?

Respuesta

20

que realmente debe read the documentation - aparece en la lista con exactamente las palabras clave que cabe esperar y contiene una gran cantidad de información útil:

-b, --cookie

(HTTP) pasar los datos a el servidor HTTP como una cookie. Supuestamente es los datos recibidos previamente del servidor en una línea "Set-Cookie:". Los datos deben tener el formato "NAME1 = VALUE1; NAME2 = VALUE2".

Si no se utiliza el símbolo '=' en la línea, se trata como un nombre de archivo para leer líneas de cookies almacenadas anteriormente, que deberían utilizarse en esta sesión si coinciden. El uso de este método también activa el "analizador de cookies" , que también hará que las cookies entrantes de registro curl, , que puede ser útil si está utilizando esto en combinación con la opción de -L, --location. El formato de archivo del archivo para leer las cookies debe ser un encabezado HTTP sin formato o el formato de archivo de cookie Netscape/Mozilla .

TEN EN CUENTA que el archivo especificado con -b, --cookie solo se utiliza como entrada. No se almacenarán cookies en el archivo. Para almacenar cookies, use la opción -c, --cookie-jar o incluso podría guardar los encabezados HTTP en un archivo usando -D, --dump-header!

Si esta opción se configura más de una vez, la última será la que se use .

+0

Gran respuesta 1 – gahooa

+0

Gracias. Parece que no fui el único :) –

+0

¡Funciona como un encanto! – PierreF

2

cURL puede usar un archivo de cookie en Netscape format. Simplemente cree ese archivo usted mismo y use como la opción CURLOPT_COOKIEFILE.

22

Puede utilizar curl_etopt con la constante CURLOPT_COOKIE:

<?php 
// create a new cURL resource 
$ch = curl_init(); 

// cookies to be sent 
curl_setopt($ch, CURLOPT_COOKIE, "fruit=apple; colour=red"); 

Más en el PHP docs

Cuestiones relacionadas