Я искал способ, чтобы указать данные cookie для CURL. Я нашел некоторые решения о том, как сохранять файлы cookie с посещенной страницы, но это не то, что мне нужно. Я хочу, чтобы написать данные для файла cookie самостоятельно, поэтому CURL использует его.
Можно ли настроить содержимое 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
.