curl? fopen? Webseite auslesen Cookie

danza

Erfahrenes Mitglied
Hi,

Ich möchte eine Webseite auslesen das klappt auch alles wunderbar nur seit ein paar Tagen wird ein Cookie verlangt sonst bleibt die Seite leer. Hatte das früher mit file_get_contents() gemacht aber da kann man denk ich mal keine cookies senden.

Nun eben die Frage: Mit welcher funktion kann ich Cookies setzen und die Informationen auslesen?

Das cookie müsste so in der Art aussehen:
data = a%3A4%3A%7Bs
 
Hi,

doch, kann man. Cookies werden im Request-Header mitgesendet. file_get_contents akzeptiert einen dritten Parameter $resource, den Du mittels stream_context_create erzeugen kannst. Schau Dir die Funktion mal an.

LG
 
Ok bin mal dazu gekommen mich damit zubeschäftigen klappt super(PHP-Handbuch hilft immer!).
 
Hier so sieht das aus:
PHP:
<?php
	$opts = array(
	  'http'=>array(
	    'method'=>"GET",
	    'header'=>"Accept-language: en\r\n" . 
	              "Cookie: userid=2576\r\n"
	  )
	);

	$context = stream_context_create($opts);

	$link = "http://www.google.de"; //Beispiel
	$data = @fopen($link, 'r', false, $context);
	$data = fgets($data);
?>
 
Keine ahnung ich habe das jetzt nur mit fopen gemacht vllt. kann dir ja ein anderer im Forum helfen...

MFG danza
 
Danke für den Link

die Klasse repräsentiert also einen Proxy der ohne PHP CURL auskommt? Man munkelt, das CURL dafür besonders gut geeignet ist, bzw. sehr schnell ist...daher dachte ich es wäre schlau das mit CURL zu machen... aber dein Skript sieht ganz gut aus :) ich habs mal getestet, aber kam net weiter als bis zur httpconnection.test.php5 mit dem ausprobieren der get-methode.

Code:
require_once("httpconnection.class.php5");

$http=new httpconnection("localhost");
$data=$http->get("testscript.php5");
echo nl2br(print_r($data['head'],true));
echo $data['body'];
unset($http);

testscript.php5 liegt 100% im gleichen verzeichnis wie alles andere. bekomme aber immer nen 404:

Code:
Array
(
[raw] => HTTP/1.1 404 Not Found
Date: Sun, 06 Jan 2008 21:06:39 GMT
Server: Apache/1.3.33 (Unix)
Content-Length: 1996
Connection: close
Content-Type: text/html

[httpversion] => 1.1
[ code ] => 404
[server] => Apache/1.3.33 (Unix)
[contentlength] => 1996
[contenttype] => text/html
)

irgendwie will der die datei nicht rein laden...

Gruß
Laura
 
Zuletzt bearbeitet:
Das Verzeichnis in dem das aufzurufende Testscript liegt, ist das ein Unterverzeichnis unterhalb des DocRoot? Wenn ja dann muss dies auch angegeben werden, aehnlich als wuerdest Du es ueber den Browser aufrufen.
 
Zurück