webForumDet fria alternativet

fsockopen

2 svar · 224 visningar · startad av Asterix

AsterixMedlem sedan dec. 1999464 inlägg
#1

Jag använder mig av föjande kod för att se om en fil på en annan server existerar:

function remote_file_exists ($baseurl, $url) {
  $fp = fsockopen ($baseurl, 80, $errno, $errstr, 30);
  if (!$fp) {
    echo "$site, $errstr ($errno)<br>\n";
  } else {
    fputs ($fp, "GET /$url HTTP/1.1\r\nHost: $baseurl\r\n\r\n");
    $line=fgets ($fp,128);
    echo "$line<br>";
    fclose ($fp);
    return FALSE;
  }
}

Men nu är det så att finns inte filen så tar det upp till 5 sekunder innan jag får svar vilket är en evighet. Går det att avbryta om det tar längre än 0.1 sekund??

MungoMedlem sedan jan. 2000376 inlägg
#2

Femte argumentet till fsockopen är "timeout", 30 sekunder m.a.o. - och den är FLOAT så du borde kunna ange den till 0.1, men 0.1 sekunder är verkligen inte lång tid för att kolla om en webserver svarar.

MungoMedlem sedan jan. 2000376 inlägg
#3

...fast du vill ju korta av tiden som det tar för webservern att svara när du väl öppnat din socket, glöm det jag sa...

127 ms totalt · 3 externa anrop · cache AV · v20260731051352-full.56cc9887
0 ms — hämta statistik (cache)
0 ms — hämta forumlista (cache)
124 ms — hämta tråd, inlägg och bilagor (db)