Я использую это ….
function cURL($url, $header=NULL, $p=NULL) { $ch = curl_init(); curl_setopt($ch, CURLOPT_HEADER, true); curl_setopt($ch, CURLOPT_NOBODY, true); curl_setopt($ch, CURLOPT_HTTPHEADER, $header); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:9.0.1) Gecko/20100101 Firefox/9.0.1"); curl_setopt($ch, CURLOPT_COOKIEFILE, "/tmp/TestCookies"); if ($p) { curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $p); } $result = curl_exec($ch); if ($result) { return $result; } else { return curl_error($ch); } curl_close($ch); }
И я звоню вот так …
$Headers = array( "Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*\/*;q=0.5", "Accept-Language: en-gb,en;q=0.5", "Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7"); $a = $this->cURL("https://www.mysite.com/",$Headers, null);
Я ожидаю, что это получит куки-файл и напишет его в файл /tmp/TestCookies
.
Сайт определенно возвращает заголовки Set-Cookie
– я могу их увидеть, если я дамлю $a
, однако этот файл никогда не создается.
В случае, если это проблема с правами доступа, я создал ее с touch
и chmod 777
'd it. Файл теперь существует, но он пуст.
Что я делаю не так?
Константы завитка расщепляются на
CURL_COOKIEFILE
как источник CURL_COOKIEFILE
который считывается из CURL_COOKIEJAR
как хранилище данных, которое Вам необходимо предоставить _COOKIEFILE
пустую строку, чтобы включить ее IIRC, но _COOKIEJAR
если вы хотите, чтобы они были сохранены. Обычно устанавливаются оба параметра с тем же именем.