curl - получить куки в файл - PullRequest
1 голос
/ 17 июня 2011

В одной папке 3 файла:

curl.php:

$ch = curl_init('http://localhost/url.php');

curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookies.txt');
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookies.txt');

curl_exec($ch);

url.php:

setcookie('test', 'foo', time()+60*60*24, '/');

cookies.txt: (пусто)

Когда я запускаю curl.php, я ожидаю, что cookie будет сохранен в cookies.txt.
Но ничего не происходит.

Что с этим не так, почему не работает?

Ответы [ 3 ]

2 голосов
/ 17 июня 2011

Имеет ли он разрешение на запись файла в этот каталог с пользователем, с которым он запускается?

Если файлы cookie не получены, файл не будет сохранен, и вам следует помнить, что файлы cookie сохраняются в файл, когда дескриптор закрыт.

Может потребоваться указать абсолютный путь к текстовому файлу, в котором следует сохранять файлы cookie, чтобы быть уверенным, что вы знаете, где они находятся.

2 голосов
/ 12 июня 2014

Просто определите путь.

Измените curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookies.txt'); на curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__) . 'cookies.txt'); и должно работать.

И помни. COOKIEJAR предназначен для сохранения файлов cookie, а COOKIEFILE - для их загрузки снова.

Happy CURL; P

2 голосов
/ 17 июня 2011

Согласно PHP документации :

CURLOPT_COOKIEJAR - имя файла, в который сохраняются все внутренние куки, когда дескриптор закрыт, например, после вызова curl_close.

Так что вам нужно позвонить curl_close($ch).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...