phpbar.de logo

Mailinglisten-Archive

[php] fsockopen, fgest und HTTP

[php] fsockopen, fgest und HTTP

Lutz Zetzsche Lutz.Zetzsche at sea-rescue.de
Mit Jul 4 12:37:23 CEST 2007


Guten Morgen! :-)

Ich habe mich Sonntag einige Stunden mit einem merkwürdigen 
Phänomen herumgeschlagen. Jetzt weiß ich, wie ich es beseitigen kann, 
aber ich würde gerne wissen, was der eigentliche Grund ist...

Es geht um folgendes Beispiel aus dem Handbuch:

<?php
$fp = fsockopen ("www.example.com", 80, $errno, $errstr, 30);
if (!$fp) {
    echo "$errstr ($errno)<br />\n";
} else {
    fputs ($fp, "GET / HTTP/1.0\r\n\r\n");
    while (!feof($fp)) {
        echo fgets($fp,128);
    }
    fclose($fp);
}
?> 

Ich habe damit eine dynamische Seite geholt. Wenn ich HTTP/1.0 angeben, 
ist alles in Ordnung, gebe ich HTTP/1.1 an, dann erscheinen in gewissen 
Abständen 4-stellige Zeichen wie 1f69 und 1f4b. Irgendwie sieht es nach 
einem Kodierungsproblem aus. Sowohl der sendende als auch der 
antwortende Server arbeiten aber eigentlich mit HTTP/1.1 und UTF-8.

Jetzt wundere ich mich, wie dieses Problem auftreten kann. Hat jemand 
eine Erklärung dafür? Vielleicht gibt es ja eine sauberere, korrektere 
Lösung, als HTTP/1.1 durch HTTP/1.0 zu ersetzen. Gibt es irgendwas, was 
ich in den Request-Header schreiben könnte, so daß es auch mit HTTP/1.1 
funktioniert?

Viele Grüße
Lutz

php::bar PHP Wiki   -   Listenarchive