Christian Seiler: RSS Feed und 1und1

Beitrag lesen

Hallo eddi,

<?php

$pfad='/news2';
   $c=@fsockopen('focus.msn.de',80,$en,$es,1);
   if(is_resource($c)){
      fwrite($c,"GET $pfad HTTP/1.1\r\n");
      fwrite($c,"Host: focus.msn.de\r\n");
      fwrite($c,"Connection: close\r\n\r\n");

do{
         $t=fgets($c,2200000);
      }while($t!="\r\n");
      $t='';
      while(!feof($c)){
         $t.=fgets($c,1024);
      }
      # weitere Verarbeitung des Inhalts $t
      fclose($c);
   }
   else echo "keine Verbindung zu http://focus.msn.de wegen <b>$es</b>";
?>

  
Nunja, RFC 2616 schreibt vor, dass ein HTTP/1.1-kompatibler Client auch Transfer-Encoding: chunked verstehen können muss - Du interpretierst jedoch nur Transfer-Econding: entity. Deswegen würde ich stattdessen einen HTTP/1.0-Request absetzen, da gibt's zwar eigentlich keinen Host-Header, aber jeder Webserver, der mir über den Weg gelaufen ist, versteht das trotzdem, d.h. mit HTTP/1.0 und Host-Header solltest Du weniger Probleme haben als mit HTTP/1.1 und darauf hoffen, dass der Server Transfer-Encoding: entity zurückliefert. Oder Du interpretierst Transfer-Encoding: chunked, entweder Du schreibst selbst eine Routine dafür oder Du nutzt [PEAR HTTP_Request](http://pear.php.net/manual/en/package.http.http-request.php) oder etwas ähnliches.  
  
Viele Grüße,  
Christian  

-- 
"I have always wished for my computer to be as easy to use as my telephone; my wish has come true because I can no longer figure out how to use my telephone." - Bjarne Stroustrup