note 45787 added to function.filesize

From: Date: Sat, 18 Sep 2004 20:56:45 +0000
Subject: note 45787 added to function.filesize
Groups: php.notes 
Request: Send a blank email to php-notes+get-76948@lists.php.net to get a copy of this message
Just a dirty, small function to get the file size of a remote HTTP file. The functions tries to get the Content-Length-Header first. If this fails, it downloads the whole file and returns the file size using strlen(). Works fine for me, you might find it useful. <?php function httpFileSize($file) { ereg("http:\/\/([^\/]*)\/(.*)", $file, $reg); $uri = '/' . $reg[2]; if(strstr($reg[1], ':') !== false) { list($host, $port) = explode(':', $reg[1]); } else { $host = $reg[1]; $port = 80; } $get = 'GET ' . $uri . ' HTTP/1.1' . "\r\n" . 'Host: ' . $host . "\r\n\r\n"; $sock = fsockopen($host, $port); fwrite($sock, $get, strlen($get)); $res = fread($sock, 1024); fclose($sock); if(eregi("Content-Length: ([0-9]*)", $res, $reg)) { return $reg[1]; } else { $i = 0; $fp = fopen($file, 'r'); while(!feof($fp)) { $i += strlen(fread($fp, 4096)); } fclose($fp); return $i; } } ?> ---- Manual Page -- http://www.php.net/manual/en/function.filesize.php Edit -- http://master.php.net/manage/user-notes.php?action=edit+45787 Delete -- http://master.php.net/manage/user-notes.php?action=delete+45787&report=yes Reject -- http://master.php.net/manage/user-notes.php?action=reject+45787&report=yes Search -- http://master.php.net/manage/user-notes.php

« previous php.notes (#76948) next »