Page 1 of 1

Global file inspection

Posted: Tue Nov 02, 2004 3:27 pm
by Shendemiar
Is it possible to get data like filesize or file_exist from files over the net?

Posted: Tue Nov 02, 2004 3:41 pm
by John Cartwright
Why dont you try.

From php.net comments

Code: Select all

<?php
<?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; 
} 
?> 

?>

from another comment
For Windows users, note that when the manual says "this function will not work on remote files", that also includes other drive partitions on the same computer.

Posted: Tue Nov 02, 2004 3:59 pm
by Shendemiar
Thanks, would be great but seems like my isp don't have curl support...

:cry: