Сохранение файлов cookie для удаленных веб-страниц
у меня есть приложение PHP, которое должно захватить содержимое с другой веб-страницы, а веб-странице, которую я читаю, нужен cookie.
Я нашел информацию о том, как сделать этот звонок, как только у меня есть cookie (http://groups.google.com/group/comp.lang.php/msg/4f618114ab15ae2a), однако я понятия не имею, как создать файл cookie или как / где файл cookie сохраняется.
например, чтобы прочитать эту веб-страницу через wget, я делаю следующий:
wget --quiet --save-cookies cookie.file --output-document=who.cares
http://remoteServer/login.php?user=xxx&pass=yyy
wget --quiet --load-cookies cookie.file --output-document=documentiwant.html
http://remoteServer/pageicareabout.html
... мой вопрос в том, как мне сделать бит "--save-cookies " в PHP, чтобы я мог использовать cookie в последующем блоке PHP stream_context_create / file_get_contents:
$opts = array(http'=> array(
'method'=> "GET",
'header'=>
"Accept-language: enrn" .
"Cookie: **NoClueAtAll**rn"
)
);
$context = stream_context_create($opts);
$documentiwant = file_get_contents("http://remoteServer/pageicareabout.html",
0, $context);
2 ответов
вам, вероятно, лучше использовать cURL. Использовать curl_setopt настройка параметров обработки файлов cookie.
Если это всего лишь одноразовая вещь, вы можете использовать Firefox с Live HTTP заголовки чтобы получить заголовок, вставьте его в ваш PHP-код.
Шазам - это сработало ! Спасибо тааак много ! Если кто-то еще наткнется на эту страницу, вот что нужно было подробно:
- установить завиток (для меня это было как простой, как " sudo apt-get install php5-curl ' в ubuntu)
-
изменить ранее перечисленные PHP в следующем:
<?php $cr = curl_init('http://remoteServer/login.php?user=xxx&pass=yyy'); curl_setopt($cr, CURLOPT_RETURNTRANSFER, true); curl_setopt($cr, CURLOPT_COOKIEJAR, 'cookie.txt'); $whoCares = curl_exec($cr); curl_close($cr); $cr = curl_init('http://remoteServer/pageicareabout.html'); curl_setopt($cr, CURLOPT_RETURNTRANSFER, true); curl_setopt($cr, CURLOPT_COOKIEFILE, 'cookie.txt'); $documentiwant = curl_exec($cr); curl_close($cr); ?>
над фрагментом кода сильно влияет http://www.weberdev.com/get_example-4555.html.