Domanda Come faccio a salvare i cookie da una risposta a una richiesta CURL usando php?


Sto usando curl tramite php per recuperare un url. Sono riuscito a scaricare la pagina, le intestazioni e tutto il resto. Tuttavia, i cookie restituiti da qualsiasi pagina non vengono salvati nel file specificato. Ho controllato le autorizzazioni ecc. E nulla sembra fuori dall'ordinario. Sto iniziando a pensare che qualcosa non va nel mio codice.

$get_cookie_page = 'http://www.google.ca';
echo curl_download($get_cookie_page);

function curl_download($Url){
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, $Url);
  curl_setopt($ch, CURLOPT_NOBODY, true);
  curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
  $http_headers = array(
                    'Host: www.google.ca',
                    'User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0.2) Gecko/20100101 Firefox/6.0.2',
                    'Accept: */*',
                    'Accept-Language: en-us,en;q=0.5',
                    'Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7',
                    'Connection: keep-alive'
                  );
  curl_setopt($ch, CURLOPT_HEADER, true);
  curl_setopt($ch, CURLOPT_HTTPHEADER, $http_headers);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($ch, CURLOPT_TIMEOUT, 10);
  $output = curl_exec($ch);
  curl_close($ch);
  return $output;
}

Qualsiasi aiuto apprezzato.


11
2017-10-27 15:03


origine


risposte:


Grazie a tutti per tutto l'aiuto. Tuttavia, il problema era qualcos'altro. Probabilmente avrei dovuto dire che sto lavorando su un server Windows e cURL non è stato in grado di leggere il percorso cookie.txt.

usando:

curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__) . '/cookie.txt');

invece di:

curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');

problema risolto.


21
2017-12-06 19:18



Utilizzare un percorso assoluto per il file jar cookie in modo da essere sicuri di dove è stato salvato e quindi si sa che si ha il diritto di scrivere lì.

arricciatura memorizza tutti i cookie che conosce sul file, compresi i cosiddetti cookie di sessione (che sono senza scadenza)


4
2017-10-27 17:02