Global file inspection

PHP programming forum. Ask questions or help people concerning PHP code. Don't understand a function? Need help implementing a class? Don't understand a class? Here is where to ask. Remember to do your homework!

Moderator: General Moderators

Post Reply
Shendemiar
Forum Contributor
Posts: 404
Joined: Thu Jan 08, 2004 8:28 am

Global file inspection

Post by Shendemiar »

Is it possible to get data like filesize or file_exist from files over the net?
User avatar
John Cartwright
Site Admin
Posts: 11470
Joined: Tue Dec 23, 2003 2:10 am
Location: Toronto
Contact:

Post 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.
Shendemiar
Forum Contributor
Posts: 404
Joined: Thu Jan 08, 2004 8:28 am

Post by Shendemiar »

Thanks, would be great but seems like my isp don't have curl support...

:cry:
Post Reply