Hallo,
ich nutzte einen vcon PHP simulierten POST Request mit fsockopen() um Daten an einen anderen Server zu übertragen. Nun möchte ich gerne die Antwort dieses Servers auswerten (Wenn sie 'true' ist ist alles ok, falls nicht will ich die Fehlermeldung ausgeben). Um dies zu erreichen lasse ich das empfangende PHP Script einfach per echo den Status zurück geben und lese diese Antwort nach dem Senden der daten aus. Nun ist mein problem das die Funktion nicht nur das was das Script geschrieben hat ausliest, sondern den kompletten http header gleich mit. Die Antwort sieht dann also so aus:
HTTP/1.1 200 OK Date: Tue, 20 May 2003 21:40:23 GMT Server: Apache/1.3.20 (Win32) X-Powered-By: PHP/4.2.3 Connection: close Transfer-Encoding: chunked Content-Type: text/html 4 true 0
Das ist natürlich relativ unschön und macht auch die Arbeit damit schwerer. Kann ich den Header denn irgendwie los werden?
Anbei noch das verwendete Script:
function PostToHost($host, $path, $referer, $data_to_send) {
$fp = fsockopen($host, 100);
fputs($fp, "POST $path HTTP/1.1\n");
fputs($fp, "Host: $host\n");
fputs($fp, "Referer: $referer\n");
fputs($fp, "Content-type: application/x-www-form-urlencoded\n");
fputs($fp, "Content-length: ". strlen($data_to_send) ."\n");
fputs($fp, "Connection: close\n\n");
fputs($fp, "$data_to_send\n");
printf("Transferiere Daten!\n");
while(!feof($fp)) {
$res .= fgets($fp, 128);
}
fclose($fp);
return $res;
}
$data = "user=sta";
$x = PostToHost(
"localhost",
"sta/toptrek/transfer.php",
"http://localhost:100/sta/toptrek/transfer.php",
$data
);
echo "<br>" . $x;
Dabei enthält $x dann die oben erwähnte Antwort mit dem header.
Grüsse
Marc