Frage

Ich habe eine PHP -Anwendung, die den Inhalt von einer anderen Webseite abrufen muss, und die Webseite, die ich lese, benötigt ein Cookie.

Ich habe Informationen gefunden, wie man diesen Anruf tätigt, sobald ich den Cookie habe ( http://groups.google.com/group/comp.lang.php/msg/4f618114ab15ae2a ), Allerdings habe ich keine Ahnung, wie ich das Cookie generieren soll oder wie / wo der Keks gerettet wird.

Zum Beispiel, um diese Webseite über WGet zu lesen, mache ich Folgendes:

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

... Meine Frage ist, wie ich das Bit '-Save-Cookies' in PHP mache, damit ich das Cookie im Follow-up-PHP-Stream_Context_Create / File_Get_Contents Block verwenden kann:

$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);
War es hilfreich?

Lösung

Sie würden wahrscheinlich besser dran sein, wenn Sie es verwenden würden Locken. Verwenden curl_setopt So richten Sie die Cookie -Handhabungsoptionen ein.

Wenn dies nur eine einmalige Sache ist, könnten Sie Firefox mit verwenden Live HTTP -Header Um den Header zu erhalten, fügen Sie ihn dann in Ihren PHP -Code ein.

Andere Tipps

Shazam - das hat funktioniert ! Danke soooo viel! Falls jemand anderes auf diese Seite stolpert, wurde dies im Detail benötigt:

  1. Installieren Sie Curl (für mich war es so einfach wie "sudo apt-Get-Installieren Sie PHP5-curl" in Ubuntu)
  2. Ändern Sie den vorherigen PHP in Folgendes::

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

Über dem Code -Snippet stark beeinflusst von http://www.weberdev.com/get_example-4555.html.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top