Chris: Bilder mittels Server-Script abholen

Hallo,

ich will mit einem Serverscript Bilder von einem anderen Server holen. Ich habe die Header abgeschnitten und die Bilder jeweils in einer Datei gespeichert. Leider können sie dann trotzdem nicht angezeigt werden. Woran könnte das liegen?

$host ="www.host.test";

$errno  = 0;
$errstr = '';
$referrer = 'http://www.host.test';

$imgsrc = '/cgi/bild$n';

$fp = fsockopen ($host, 80, $errno, $errstr, 10);
if (!$fp)
{
  echo "$errstr ($errno)<br />\n";
}
else
{
  fputs ($fp, "GET $imgsrc HTTP/1.0\n");
  fputs ($fp, "Referrer: $referrer\n");
  fputs ($fp, "Host: $host\n\n");

$pic = '';

while (!feof($fp))
  {
    $line = fgets($fp,1024);
    if (strlen(trim($line)) == 0 )
    {
      break;
    }
    else
    {
      $header[] = $line;
    }
  }

## hier ggf. noch weiter Leerzeilen wegschneiden

while (!feof($fp))
  {
    $pic .= fgets($fp,1024);
  }
  fclose($fp);

$fp = fopen('picture.jpg','w+');
  fwrite($fp, $pic);
  fclose($fp);

}

Wo ist denn da der Denkfehler?

LG
Chris

  1. Moin

    ich will mit einem Serverscript Bilder von einem anderen Server holen. Ich habe die Header abgeschnitten und die Bilder jeweils in einer Datei gespeichert. Leider können sie dann trotzdem nicht angezeigt werden. Woran könnte das liegen?

    nur zum Verständnis. Du möchtest per Script von einem Server ein Bild holen und dieses bei Dir abspeichern. Richtig?

    regds
    Mike©

    --
    Freunde kommen und gehen. Feinde sammeln sich an.
  2. Moin nochmal,

    ich will mit einem Serverscript Bilder von einem anderen Server holen. Ich habe die Header abgeschnitten und die Bilder jeweils in einer Datei gespeichert. Leider können sie dann trotzdem nicht angezeigt werden. Woran könnte das liegen?

    Wenn meine Vermutung von 14:35 richtig ist, dann machst Du es so:

    Gib mal Feeback.

    $Link='http://www.kita-weidenstrasse.de/images/sonne.gif';
    $File='Meine_Sonne.gif';

    $link_pointer=fopen($Link,"rb");

    if ( $link_pointer )
       {
          $image_pointer=fopen($File,"wb");

    if ( $image_pointer )
      {
        while(!feof($link_pointer))
      {
         $image = fread($link_pointer, 1024);
         fputs($image_pointer, $image);
             }

    fclose($image_pointer);
             }

    fclose($link_pointer);
        }

    regds
    Mike©

    --
    Freunde kommen und gehen. Feinde sammeln sich an.
    1. Hello Mike,

      Chris versucht hier, Bilder von einem Server zu holen, der einen bestimmten Referrer benötigt.
      Das klappt mit Deinem Script auf keinen Fall. Ein Leerer Referrer wird mit "DuDu" bestraft.

      Ich sehe aber den Fehler auch nicht. Wahrscheinlich liegts an der fehlenden Brille.

      Harzliche Grüße aus http://www.annerschbarrich.de

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      Nur selber lernen macht schlau
  3. $line = fgets($fp,1024);

    Wo ist denn da der Denkfehler?

    string fgets ( resource handle [, int length])

    Gibt eine Zeile bis zu length -1 Bytes Länge zurück, welche aus der Datei von der aktuellen Position des Dateizeigers handle aus ausgelesen wird. Die Zeile endet an einem Zeilenumbruch (welcher im Rückgabewert enthalten ist), EOF (Ende der Datei) oder bei length - 1 Bytes (je nachdem, was eher auftritt). Ist keine Länge angegeben, wird diese auf 1k bzw. 1024 Bytes gesetzt.

    newline !!!! bilder sind byteströme