Сохранять файлы cookie для удаленных веб-страниц

У меня есть PHP-приложение, которое нужно захватить с другой веб-страницы, а на просматриваемой веб-странице нужен куки-файл.

Я нашел информацию о том, как сделать этот вызов, когда у меня есть файл 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, чтобы я мог использовать куки-файл в последующем блоке stream_context_create / file_get_contents PHP:

 $opts = array(http'=> array( 'method'=> "GET", 'header'=> "Accept-language: en\r\n" . "Cookie: **NoClueAtAll**\r\n" ) ); $context = stream_context_create($opts); $documentiwant = file_get_contents("http://remoteServer/pageicareabout.html", 0, $context); 

Вероятно, вам лучше использовать cURL . Используйте curl_setopt для настройки параметров обработки файлов cookie.

Если это всего лишь одноразовая вещь, вы можете использовать Firefox с Live HTTP Headers, чтобы получить заголовок, а затем вставить его в свой PHP-код.

Шазам – это сработало! Thx soooo много! В случае, если кто-то другой натыкается на эту страницу, вот что нужно было подробно:

  1. установить cURL (для меня это было так же просто, как «sudo apt-get install php5-curl» в ubuntu)
  2. измените предыдущий 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 .