Thomas: Datei auslesen mit fsockopen()

Guten Abend,

mein Provider erlaubt es leider nicht, Dateien ausserhalb meiner Domain mit fopen() oder file() einzulesen.
So, das einzige was noch bleibt wäre dann IMHO wohl nur noch fsockopen(). Aber wie funktioniert das damit?

Habe folgendes probiert:

$adresse = "www.example.com/ordner/datei.txt";

$fp = fsockopen ("$adresse", 80, $errno, $errstr, 30);
if (!$fp) {
  echo "$errstr ($errno)<br>\n";
} else {
  fputs ($fp, "GET / HTTP/1.0\r\nHost: $adresse\r\n\r\n");
  while (!feof($fp)) {
    echo fgets ($fp,1024);
  }
  fclose ($fp);
}

So, das funktioniert aber nicht - ich bekomme nicht den Inhalt der Datei. Wie sollte das richtig aussehen?

Danke~

  1. Hio,

    mein Provider erlaubt es leider nicht, Dateien ausserhalb meiner Domain mit fopen() oder file() einzulesen.
    So, das einzige was noch bleibt wäre dann IMHO wohl nur noch fsockopen(). Aber wie funktioniert das damit?

    fsockopen erlaubt er?

    Habe folgendes probiert:

    $adresse = "www.example.com/ordner/datei.txt";

    $fp = fsockopen ("$adresse", 80, $errno, $errstr, 30);
    if (!$fp) {
      echo "$errstr ($errno)<br>\n";
    } else {
      fputs ($fp, "GET / HTTP/1.0\r\nHost: $adresse\r\n\r\n");
      while (!feof($fp)) {
        echo fgets ($fp,1024);
      }
      fclose ($fp);
    }

    lange her das ich mit fsockopen was gemacht habe, probiers trotzdem mal ...

    der erste Parameter ist nur der Hostname, nicht die URL, diese forderst du dann per GET an. Wenn du HTTP1.0 benutzt, gibst du keinen Host an, das macht man bei HTTP1.1

    ändere
    $adresse = "www.example.com";
    fputs ($fp, "GET /ordner/datei.txt HTTP/1.0\r\n\r\n");

    und versuchs mal, wie gesagt lange her ;)

    gl & hf

    Thorsten