Im использует curl через php для получения URL-адреса. Я успешно могу загрузить страницу, заголовки и все. Однако файлы cookie, возвращаемые любой страницей, не сохраняются в указанном файле. Я проверил разрешения и т. Д., И ничего не кажется необычным. Я начинаю думать, что в моем коде что-то не так.
$get_cookie_page = 'http://www.google.ca'; echo curl_download($get_cookie_page); function curl_download($Url){ $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $Url); curl_setopt($ch, CURLOPT_NOBODY, true); curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt'); $http_headers = array( 'Host: www.google.ca', 'User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0.2) Gecko/20100101 Firefox/6.0.2', 'Accept: */*', 'Accept-Language: en-us,en;q=0.5', 'Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7', 'Connection: keep-alive' ); curl_setopt($ch, CURLOPT_HEADER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, $http_headers); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_TIMEOUT, 10); $output = curl_exec($ch); curl_close($ch); return $output; }
Любая помощь оценивается.
Спасибо всем за помощь. Однако проблема была совсем другая. Вероятно, я должен был упомянуть, что я работаю на сервере Windows, и cURL не смог прочитать путь к cookie.txt
.
С помощью:
curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__) . '/cookie.txt');
вместо:
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
решил проблему.
Используйте абсолютный путь к файлу jar файла cookie, чтобы вы были уверены, где он будет сохранен, и, следовательно, вы знаете, что имеете правильное разрешение писать там.
curl хранит все файлы cookie, которые он знает в файле, включая так называемые cookie сеанса (которые не имеют времени истечения срока действия)