curlopt_cookiejar cookie php curl cookies

curlopt_cookiejar - curl cookie jar php



Guarde las cookies para páginas web remotas (2)

Tengo una aplicación PHP que necesita tomar los contenidos de otra página web, y la página web que estoy leyendo necesita una cookie.

He encontrado información sobre cómo hacer esta llamada una vez que tengo la cookie ( http://groups.google.com/group/comp.lang.php/msg/4f618114ab15ae2a ), sin embargo, no tengo idea de cómo generar el cookie, o cómo / dónde se guarda la cookie.

Por ejemplo, para leer esta página web a través de wget, hago lo siguiente:

wget --quiet --save-cookies cookie.file --output-document=who.cares / http://remoteServer/login.php?user=xxx&pass=yyy wget --quiet --load-cookies cookie.file --output-document=documentiwant.html / http://remoteServer/pageicareabout.html

... mi pregunta es cómo hago el bit ''--save-cookies'' en PHP para poder usar la cookie en el siguiente bloque PHP stream_context_create / file_get_contents:

$opts = array(http''=> array( ''method''=> "GET", ''header''=> "Accept-language: en/r/n" . "Cookie: **NoClueAtAll**/r/n" ) ); $context = stream_context_create($opts); $documentiwant = file_get_contents("http://remoteServer/pageicareabout.html", 0, $context);


Probablemente sería mejor usar cURL . Use curl_setopt para configurar las opciones de manejo de cookies.

Si esto es algo único, puede usar Firefox con Live HTTP Headers para obtener el encabezado y luego pegarlo en su código PHP.


Shazam - ¡eso funcionó! ¡Mucho tanto! En caso de que alguien más tropiece con esta página, esto es lo que se necesitaba en detalle:

  1. install cURL (para mí fue tan simple como ''sudo apt-get install php5-curl'' en ubuntu)
  2. cambie el PHP mencionado anteriormente a lo siguiente:

    <?php $cr = curl_init(''http://remoteServer/login.php?user=xxx&pass=yyy''); curl_setopt($cr, CURLOPT_RETURNTRANSFER, true); curl_setopt($cr, CURLOPT_COOKIEJAR, ''cookie.txt''); $whoCares = curl_exec($cr); curl_close($cr); $cr = curl_init(''http://remoteServer/pageicareabout.html''); curl_setopt($cr, CURLOPT_RETURNTRANSFER, true); curl_setopt($cr, CURLOPT_COOKIEFILE, ''cookie.txt''); $documentiwant = curl_exec($cr); curl_close($cr); ?>

El fragmento de código anterior está muy influenciado por http://www.weberdev.com/get_example-4555.html .