Hey,
Ich probiere gerade ein wenig mit cURL herum um später mal was vernüftiges damit zu programmieren. Ich habe zurzeit eigentlich nur ein Problem.
Wenn ich z.B. eine Get Request an https://www.google.de/ schicke und mir per "echo" die Antwort ausgeben lasse, so lädt mein PHP-Skript Google.
Nun werden aber weitere Get Requests vom Browser an Google geschickt. Wie kann ich z.B. die erste Get Request und gleich danach eine zweite losschicken und mir dann erst das Ergebnis ausgeben lassen?
Das Skript dazu würde dann z.B. so aussehen:
So ungefähr sieht das Skript aus. Damit ist aber nur eine Get Request abgedeckt. Als erste Get Request an Google schickt der Browser dann
GET /logos/2011/liszt11-hp.jpg HTTP/1.1
Die möchte ich auch per cURL abschicken, sodass diese auch nicht in Live HTTP Headers steht bzw. mein Browser sie abschickt. Jemand eine Ahnung wie man das machen kann?
Gruss xdragonx
Ich probiere gerade ein wenig mit cURL herum um später mal was vernüftiges damit zu programmieren. Ich habe zurzeit eigentlich nur ein Problem.
Wenn ich z.B. eine Get Request an https://www.google.de/ schicke und mir per "echo" die Antwort ausgeben lasse, so lädt mein PHP-Skript Google.
Nun werden aber weitere Get Requests vom Browser an Google geschickt. Wie kann ich z.B. die erste Get Request und gleich danach eine zweite losschicken und mir dann erst das Ergebnis ausgeben lassen?
Das Skript dazu würde dann z.B. so aussehen:
PHP:
// Zu besuchende URL
$address = "https://www.google.de/";
// Cookies
$Pref = "Wert für Cookie PREF";
$NID = "Wert für Cookie NID";
// UserAgent
$useragent = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3';
// erzeuge einen neuen cURL-Handle
$ch = curl_init();
// header zusammensetzen und an CURLOPT_HTTPHEADER übergeben
$header[] = "Host: www.google.de";
$header[] = "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
$header[] = "Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3";
$header[] = "Accept-Encoding: gzip,deflate";
$header[] = "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7";
$header[] = "Keep-Alive: 115";
$header[] = "Connection: keep-alive";
$header[] = "Cache-Control: max-age=0";
// setze die URL und andere Optionen
curl_setopt($ch, CURLOPT_URL, $address);
curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, TRUE);
curl_setopt($ch, CURLINFO_HEADER_OUT, TRUE);
curl_setopt($ch, CURLOPT_NOBODY, FALSE);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_ENCODING, 'gzip,deflate');
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($ch, CURLOPT_TIMEOUT, 25);
curl_setopt($ch, CURLOPT_FRESH_CONNECT, TRUE);
curl_setopt($ch, CURLOPT_REFERER, $address);
curl_setopt($ch, CURLOPT_COOKIE,$Pref.'; '.$NID);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
// Request abschicken und ausgeben
$response = curl_exec($ch);
echo ($response);
//Handle schließen
curl_close($ch)
So ungefähr sieht das Skript aus. Damit ist aber nur eine Get Request abgedeckt. Als erste Get Request an Google schickt der Browser dann
GET /logos/2011/liszt11-hp.jpg HTTP/1.1
Die möchte ich auch per cURL abschicken, sodass diese auch nicht in Live HTTP Headers steht bzw. mein Browser sie abschickt. Jemand eine Ahnung wie man das machen kann?
Gruss xdragonx