webForumDet fria alternativet

fsockopen

PHP

2 svar · 224 visningar · startad av Asterix

Medlem sedan dec. 1999483 inlägg
Frågan#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??

Medlem sedan jan. 2000372 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.

Medlem sedan jan. 2000372 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...

250 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)