Hi!
Was haltet Ihr von dieser Lösung?
Nicht viel.
$opts = array("http"=>array("timeout"=>"1"));
Der Timeout-Parameter wird als Float erwartet. Den in Anführungszeichen zu setzen ist unsinnig, erzeugt nur unnötigen Konvertieraufwand seitens PHP.
if(feof(@fopen("http://www....", "r", $context))) {
Solche eine Schachtlung sollte man tunlichst vermeiden, weil so der Fehlerfall nicht berücksichtigt wird. Selbst wenn du die Meldung von fopen() mit dem @ unterdrückst, gibt die Funktion false zurück, das keinen gültigen Wert für feof() darstellt. Also lieber alles schrittweise und vor der Weitergabe von Werten auf Fehlerzustände prüfen.
Das Ziel: Erreicht der Dateizeiger innerhalb von 1 Sekunde nicht das Ende der Datei, werden die Befehle in if nicht ausgeführt und else wird ausgeführt.
Wie soll denn ohne einen Lesevorgang jemals das Ende erreicht werden? Es wird ja doch wohl kein Content der Länge 0 ausgeliefert werden, oder?
Lo!