Hallo!
Wie bereits ein Vorredner gesagt hat: Du solltest vielleicht doch besser die url_fopen_wrappers nehmen. Aber ich will Dir dennoch etwas über die Vorgehensweise hier erzählen:
fputs($file,"GET /index.html HTTP/1.0\r\nUser-Agent: XML Getter (Mozilla Compatible)\r\n\r\n");
Diese Zeile bewirkt, dass folgendes an den Webserver gesendet wird:
GET /index.html HTTP/1.0
User-Agent: XML Getter (Mozilla Compatible)
\r\n ist der Zeilentrenner im HTTP-Universum und zwei aufeinanderfolgende Zeilentrenner heißen: "Hier ist der Header zu Ende")
Ich würde an Deiner Stelle einen anderen User-Agent senden. Vielleicht sogar gar keinen. Dafür würde ich in Zeiten von virtuellen Hosts einen Host-Header mitsenden, der den Hostnamen beinhaltet. Die Tatsache, dass Du HTTP/1.0 verwendest, ist gut, dann brauchst Du kein Transfer-Encoding: chunked interpretieren müssen. Ein Host-Header ist im Zusammenhang mit HTTP/1.0 zwar nicht 100% in Ordnung, aber nachdem Netscape 4 es auch so macht und dieser in dieser HTTP-Hinsicht keine Probleme hat, kann man das so lassen.
Deine Anfrage sieht also so aus:
GET /index.html HTTP/1.0
Host: cuemex.cdaweb.de
Du musst also folgenden String an den Server senden:
"GET /index.html HTTP/1.0\r\nHost: cuemex.cdaweb.de\r\n\r\n"
Der Server antwortet Dir dann mit Daten. Diese Daten bestehen aus Header und Body. Header und Body werden wieder durch zwei Zeilentrenner getrennt. Du trennst sie also:
list ($header, $body) = explode ("\r\n\r\n", $page, 2);
Nun steht in $header der Header und in $body der Body. In $body ist die komplette HTML-Seite enthalten. Doch bevor Du Dich jetzt zu arg freust, solltest Du erst einmal schauen, was der Server Dir geantwortet hat. Den Header solltest Du nach dem Zeilentrenner auftrennen:
$headers = explode ("\r\n", $header);
Dann solltest Du Dir die ersten drei Zeichen von der ersten Zeile anschauen:
$statuscode = substr ($headers[0], 0, 3);
Die Variable $statuscode enthält nun den Statuscode der Antwort des Servers. Wenn der Statuscode gleich 200 ist, dann ist alles in Ordnung. Wenn der Statuscode gleich 404 ist, dann ist die Resource nicht gefunden worden. Eine Liste aller HTTP-Statuscodes findest Du hier: http://selfhtml.teamone.de/diverses/httpstatuscodes.htm
Wenn Du es ganz professionell machen willst, dann solltest Du noch den Rest der Header korrekt parsen, damit Du Dir wirklich ganz sicher sein kannst.
Allerdings wie schon bereits am Anfang gesagt: Mit einem fopen ('http://.../index.html', 'r'); bist Du viel schneller am Ziel, da PHP Dir die ganze HTTP-Arbeit abnimmt.
Viele Grüße,
Christian