Hello,
$handle = fopen("http://www.webservicex.net/CurrencyConvertor.asmx/ConversionRate?FromCurrency=EUR&ToCurrency=USD", "rb");
$contents = stream_get_contents($handle);
fclose($handle);Dann lese ich den Dollarkurs mit echo $contents aus.
Wie und wann kommt also das Timeout ins Spiel?
Um das besser zu kontrollieren solletst du du mit fsockopen() oder cURL arbeiten - für fopen() kannstdu den timeout mit stream_set_timeout() setzen.
Das ist der Timeout für die Leseanforderung, also die Bytes, die Du zum Lesen in Auftrag gibst.
Der Timeout für die Öffnungsanforderung (also bei Remote-Öffnung den Socket) bleibt davon noch unbeeindruckt. Wenn man keinen Socket bekommt, muss man trotzdem bis zum Timeout des Sockets warten.
Die Konfigurationsparameter und die Funktionen dafür sind sehr verwirrend benannt.
default_socket_timeout regelt den Timeout für die Verbindungsaufnahme,
also das Anfordern und Erhalten eines gültigen Sockets
setzen kannst Du den mit ini_set() oder bei Verwendung von
fsockopen() temporär durch das
stream_set_timeout() Syononyme. Regeln beide den Timeout Datenübertragung auf einem
socket_set_timeout() bereits gültigen (offenen) Socket.
Das kann man aufgrund der schlechten Symbolwahl leider schnell durcheinanderbringen
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg