note 47552 deleted from function.filesize by aharvey

From: Date: Tue, 22 Jan 2013 00:22:11 +0000
Subject: note 47552 deleted from function.filesize by aharvey
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-193336@lists.php.net to get a copy of this message
Note Submitter: bkimble at ebaseweb dot com ---- In addition to the handy function Kris posted, here is an upgraded version that does basic http authentication as well. <?php /* * (mixed)remote_filesize($uri,$user='',$pw='') * returns the size of a remote stream in bytes or * the string 'unknown'. Also takes user and pw * incase the site requires authentication to access * the uri */ function remote_filesize($uri,$user='',$pw='') { // 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); // if auth is needed, do it here if (!empty($user) && !empty($pw)) { $headers = array('Authorization: Basic ' . base64_encode($user.':'.$pw)); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); } $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; } ?>

« previous php.notes (#193336) next »