timeout virker ikke på fsockopen()
Jeg bruger fsockopen til at tjekke, om en hjemmeside er oppe. Problemet er, at scriptet kan finde på at bruge 150 sek på at tjekke dette.Ifølge php.net dokumentationen burde dette script time-out efter 1 sek - men det gør det ikke. Her er hele scriptet:
<?
set_time_limit(900);
$time = time();
$fp = fsockopen ("www.northwindwebhost.com","80",$errorno,$errorstr,"1");
if($fp) {
fputs ($fp,"GET / HTTP/1.0\r\n");
socket_set_timeout($fp,1);
$request .= "User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows 98)\r\n";
$request .= "Host: www.northwindwebhost.com\r\n";
$request .= "Connection: Close\r\n\r\n";
fputs ($fp, $request);
$line = fgets ($fp, 128);
while (!feof($fp)) {
$data .= fgets ( $fp, 128 );
}
print "Fundet: $data";
}
else {
print "Fejl";
}
$time2 = time();
$brugt = $time2-$time;
print "<br>Brugt: $brugt sek";
?>
