Intereting Posts
Автоматическое завершение статуса для всех существующих заказов на обработку в WooCommerce xmpphp XMPP, отправить сообщение из скрипта php Codeigniter: как я могу зашифровать пароль перед отправкой формы на контроллер? Очень простой вопрос о переписывании Вызов неопределенной функции mime_content_type (), не может изменить настройки сервера Laravel 5 Socialite – ошибка cURL 77: проверка сертификатов ошибок yii2: раскрывающийся список для нескольких значений concat в одной строке FOSRestBundle: показать мое пользовательское сообщение об исключении BigQuery Ошибка InsertAll: записей в приложении данных таблицы нет http_build_query с теми же параметрами имени Перевод Gettext или базы данных POST-переменная из jquery-перенаправления, но не задана Как проверить строку в строке, заданной в dynamodb Объединение двух многомерных массивов с использованием общего значения массива Переключить загрузочный модальный с помощью php-триггера

Как сохранить cookie из ответа на запрос cURL с использованием php?

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 сеанса (которые не имеют времени истечения срока действия)