Ja, jag tror att det går att göra bättre. Som du gör nu läser du ner hela sidan/filen till din server, och det kan ju ta en del bandbredd om det handlar om stora filer. (Även om webbhotell inte brukar hålla ordning på bandbredden "åt det här hållet".) Prova detta:
<?
function urlfilesize($site){
$fp = fsockopen ($site, 80, $errno, $errstr, 30);
if (!$fp) {
echo "$errstr ($errno)<br>\n";
} else {
fputs ($fp, "GET / HTTP/1.0\r\nHost: ".$site."\r\n\r\n");
while (!feof($fp)) {
$line=fgets ($fp,128);
if(strlen(stristr($line,"content-length"))>0){
$size=preg_replace("/content-length: (.*)/i","\\1",$line);
return $size;
}
}
fclose ($fp);
return 0;
}
}
// test
$site="www.webforum.nu";
echo urlfilesize($site);
?>
Är inte 101% säker på att en server måste skicka "Content-Length" men misstänker det.
/nicclas - https://www.frisim.com