2008-10-29 3 views
9

다른 웹 페이지에서 내용을 가져와야하는 PHP 응용 프로그램이 있으며, 읽고있는 웹 페이지에 쿠키가 필요합니다.원격 웹 페이지의 쿠키 저장

쿠키 (http://groups.google.com/group/comp.lang.php/msg/4f618114ab15ae2a)가 있으면이 전화를하는 방법에 대한 정보를 찾았지만 쿠키를 생성하는 방법이나 쿠키가 저장되는 방법을 모릅니다.

예를 들어, 나는 다음을 수행 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 

... 내 질문에 내가 PHP에서 '--save-쿠키'비트합니까 방법입니다 그래서 후속 PHP의 stream_context_create에서 쿠키를 사용할 수 있습니다/file_get_contents 차단 :

$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); 

답변

5

당신은 아마 cURL를 사용하여 더 나을 것입니다. curl_setopt을 사용하여 쿠키 처리 옵션을 설정하십시오.

일회용 일 경우, Live HTTP Headers과 함께 Firefox를 사용하여 헤더를 가져온 다음 PHP 코드에 붙여 넣을 수 있습니다.

14

Shazam - 그거야! 많이 Thoo soooo! 이 페이지에 따라 경우 다른 사람이 비틀 거림에, 여기에 상세하게 필요했던 작업은 다음과 같습니다

  1. 는 컬을 설치 (나 간단 로 it'was에 대한 '는 sudo apt-get을 PHP5 컬 설치'우분투에서)
  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에 의해 영향을.