Я искал способ указать данные cookie для CURL. Я нашел несколько решений о том, как сохранить файлы cookie с посещенной страницы, но это не то, что мне нужно. Я хочу, чтобы написать данные для файла cookie самостоятельно, поэтому CURL использует его.
Вы действительно должны прочитать документацию – она указана именно с ключевыми словами, которые вы ожидаете, и содержит много полезной информации:
-b, –cookie
(HTTP) Передайте данные на HTTP-сервер в виде файла cookie. Предполагается, что это данные, ранее полученные с сервера в строке «Set-Cookie:». Данные должны быть в формате «NAME1 = VALUE1; NAME2 = VALUE2».
Если в строке не используется символ '=', он рассматривается как имя файла, которое будет использоваться для чтения ранее сохраненных строк cookie, которые должны использоваться в этом сеансе, если они совпадают. С помощью этого метода также активируется «анализатор файлов cookie», который также заставит скручивать входящие файлы cookie, что может быть удобно, если вы используете это в сочетании с опцией -L, –location. Формат файла для чтения файлов cookie должен быть простым заголовком HTTP или файлом файла cookie Netscape / Mozilla.
Учтите, что файл, указанный в -b, –cookie, используется только как вход. Файлы cookie не будут сохранены в файле. Чтобы сохранить файлы cookie, используйте параметр -c, –cookie-jar или вы даже можете сохранить заголовки HTTP в файл с помощью -D, –dump-header!
Если этот параметр задан более одного раза, последний будет тем, который используется.
Вы можете использовать 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
cURL может использовать файл cookie в формате Netscape . Просто создайте такой файл самостоятельно и используйте его как параметр CURLOPT_COOKIEFILE
.