Moin
echo fgets($fp,$fp2);
kann ich das so machen, oder sollte da direkt die Zahl stehen?
Ja, ok.
Das komische ist, dass das Script so etwa 10-20 Sekunden braucht - wofür, für das bischen was da zurück kommt!
Och, du hast dich verpflichtet HTTP 1.1 zu sprechen und da sind Keep-Alive Verbindungen glaubich Standard. Der Server wartet also noch einige Zeit bis er die Verbindung zumacht, für den Fall dass du noch was anderes haben möchtest. Füg einfach als zusätzlichen Header noch Connection: close hinzu und er sollte die Verbindung sofort zumachen.
Nochwas komisches, hab das so von php.net übernommen, aber wnn ich oben nur mal so einen falschen Server angebe, steht das nichts von Error... nur "(0)"
Warum?
Äh, wenn ich mich recht erinnere stand das auf der Dokuseite zur fsockopen-Funktion oder zumdindest in den User-Comments: $errno und $errstr werden nur gesetzt, wenn der Fehler während des Verbindungsaufbaus auftrat (zum Beispiel "Verbindung verweigert"), nicht aber wenn er schon vorher auftritt, zum Beispiel wenn der Name nicht aufgelöst werden kann. Wenn du false zurückkriegst und $errno auf 0 gesetzt ist, kannst du also in der Regel von einem Nameserverfehler ausgehen. Ggbf. solltest du das noch überprüfen indem du selbst eine Nameserverabfrage startest (schauen ob http://www.php.net/manual/de/function.gethostbyname.php die IP-Addresse zurückgibt).
Oder spricht was dagegen?
Nicht wirklich. Im RFC steht allerdings man sollte tolerant sein, bei dem was man einliest. Also würde ich einen Regulären Ausdruck nehmen, der sich evt. auch von überschüssigen Leerzeichen oder anderem Gezeugs (ich hatte mal mit einem Webserver zu tun, der manchmal "HTTP 1 Apple" zurückgab :) verwirren lässt.
PS: Welche Informationen wären wohl noch interessant, wenn man jetzt schonmal sowas macht?
Hmm, kA, vielleicht wie lange Verbindungsaufbau und Antwort dauern als Maß für die Serverlast?
--
Henryk Plötz
Grüße aus Berlin