Можно ли настроить содержимое cookie с помощью CURL?

Я искал способ, чтобы указать данные cookie для CURL. Я нашел некоторые решения о том, как сохранять файлы cookie с посещенной страницы, но это не то, что мне нужно. Я хочу, чтобы написать данные для файла cookie самостоятельно, поэтому CURL использует его.

Ответы

Ответ 1

Вы действительно должны прочитать документацию - он указан именно с ключевыми словами, которые вы ожидаете, и содержит много полезной информации:

-b, --cookie

(HTTP) Передайте данные на HTTP-сервер в виде файла cookie. Предполагается, что данные, ранее полученные от сервера в строке "Set-Cookie:". Данные должны быть в формате "NAME1 = VALUE1; NAME2 = VALUE2".

Если в строке не используется символ '=', он рассматривается как имя файла для использовать для чтения ранее сохраненных строк cookie, из которых следует использовать в этом сеансе, если они совпадают. Использование этого метода также активирует "cookie parser", который также сделает завиток записи поступающих файлов cookie, что может быть удобно, если вы используете это в сочетании с -L, --location option. Формат файла для чтения файлов cookie должен быть простым заголовком HTTP или файлом cookie Netscape/Mozilla Формат.

ЗАМЕЧАНИЕ, что файл, указанный с помощью -b, --cookie, используется только как вход. Файлы cookie не будут сохранены в файле. Чтобы сохранить файлы cookie, используйте клавиши -c, --cookie-jar или вы даже можете сохранить заголовки HTTP в файл с помощью -D, --dump-header!

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

Ответ 2

Вы можете использовать curl_etopt с константой CURLOPT_COOKIE:

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

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

Подробнее в Документах по PHP

Ответ 3

cURL может использовать файл cookie в формате Netscape. Просто создайте такой файл самостоятельно и используйте его как CURLOPT_COOKIEFILE.