sushi: header umleitung ?

ich habe folgende funktion geschrieben um damit auf de.wikipedia.org einen artikel direkt holen zu können:
function PostToHost($host, $path, $referer, $data_to_send)
{
  $fp = fsockopen($host, 80);

fputs($fp, "POST $path HTTP/1.1\r\n");
  fputs($fp, "Host: $host\r\n");
  fputs($fp, "Referer: $referer\r\n");
  fputs($fp, "Content-type: text/plain\r\n");
  fputs($fp, "Content-length: ". strlen($data_to_send) ."\r\n");
  fputs($fp, "Connection: close\r\n\r\n");
  fputs($fp, $data_to_send);

while(!feof($fp)) {
      $res .= fgets($fp, 1280);
}

fclose($fp);

return $res;
}

$data_to_send = "search=value";
$path= '/w/wiki.phtml';
$referer = 'www.blah.de';
$host = 'de.wikipedia.org';
$answer = PostToHost($host,$path,$referer,$data-to_send);
die funktion funktioniert soweit wunderbaraber ich bekomme von wiki immer ein site has permanently moved.
Ich denke da muss irgendwo ne umleitung per http heqader geschehen oder so da in dem formular auf der seite unter action /w/wiki.phtml steht. Oder auch irgendwas anderes aber ich habe keine ahnung warum genau.
Gruß
Sushi

  1. Hello,

    die funktion funktioniert soweit wunderbaraber ich bekomme von wiki immer ein site has permanently moved.
    Ich denke da muss irgendwo ne umleitung per http heqader geschehen oder so da in dem formular auf der seite unter action /w/wiki.phtml steht. Oder auch irgendwas anderes aber ich habe keine ahnung warum genau.

    Wahrscheinlich bekommst Du auch noch einen Cookie geschickt.
    Der Umleitungs-Header wird gerne dafür benutzt, um den Client auf Cookie-Akzeptanz abzuprüfen.

    Du müsstest Dir einfach mal alle empfangenen Header anzeigen lassen und dann eine Strategie entwerfen, auf welche Antworten Du wie reagiern willst.

    PHP stellt dafür die Funktion getallheaders() zur Verfügung. http://de2.php.net/manual/de/function.getallheaders.php

    Liebe Grüße aus http://www.braunschweig.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    1. Danke aber ehrlich gesagt weis ich nicht genau wo ich diese Funktion benutzen soll. Wenn ich die socketverbindung aufgebaut habe oder wie?
      Danke
      Sushi

    2. Hello,

      Du hast recht, das wird Dir nix nützen. Du musst den Socket ja "zu Fuß" auslesen und dann auswerten. Ich hatte da auch irgendwo ein vollständiges Beispiel, aber ich finde es nicht mehr.

      Liebe Grüße aus http://www.braunschweig.de

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      1. Und wie würde ich das mit der funktion machen ?