note 45435 modified in function.filesize by aidan

From: Date: Sun, 26 Sep 2004 00:19:57 +0000
Subject: note 45435 modified in function.filesize by aidan
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-77338@lists.php.net to get a copy of this message
For the people that keep asking how to get the filesize for a remote file, i figured this little thing out utilizing curl. Hope this helps someone Kris. <?php /* * (mixed)remote_filesize($uri) * returns the size of a remote stream in bytes or * the string 'unknmown' */ function remote_filesize($uri) { // start output buffering ob_start(); // initialize curl with given uri $ch = curl_init($uri); // make sure we get the header curl_setopt($ch, CURLOPT_HEADER, 1); // make it a http HEAD request curl_setopt($ch, CURLOPT_NOBODY, 1); $okay = curl_exec($ch); curl_close($ch); // get the output buffer $head = ob_get_contents(); // clean the output buffer and return to previous // buffer settings ob_end_clean(); // gets you the numeric value from the Content-Length // field in the http header $regex = '/Content-Length:\s([0-9].+?)\s/'; $count = preg_match($regex, $head, $matches); // if there was a Content-Length field, its value // will now be in $matches[1] if (isset($matches[1])) { $size = $matches[1]; } else { $size = 'unknown'; } return $size; } ?> --was-- For the people that keep asking how to get the filesize for a remote file, i figured this little thing out utilizing curl. Hope this helps someone Kris. /* * (mixed)remote_filesize($uri) * returns the size of a remote stream in bytes or * the string 'unknmown' */ function remote_filesize($uri) {     // start output buffering     ob_start();     // initialize curl with given uri     $ch = curl_init($uri);     // make sure we get the header     curl_setopt($ch, CURLOPT_HEADER, 1);     // make it a http HEAD request     curl_setopt($ch, CURLOPT_NOBODY, 1);     $okay = curl_exec($ch);     curl_close($ch);     // get the output buffer     $head = ob_get_contents();     // clean the output buffer and return to previous     // buffer settings     ob_end_clean();     // gets you the numeric value from the Content-Length     // field in the http header     $regex = '/Content-Length:\s([0-9].+?)\s/';     $count = preg_match($regex, $head, $matches);     // if there was a Content-Length field, its value     // will now be in $matches[1]     if (isset($matches[1]))     {         $size = $matches[1];     } else {         $size = 'unknown';     }     return $size; } http://php.net/manual/en/function.filesize.php

« previous php.notes (#77338) next »