Get Remote File Size Using PHP

We can get a file's size by using PHP build in filesize function. But the problem is this function only works for local file. If you want to get a remote file's size you need to think some other way. In this post I am going to show you how we can get a remote file's size from it's header information with out downloading file. I will show you two example. One, using get_headers function and another using cURL. Using get_headers is very simple  approach  and works for every body. Using cURL is more advance and powerful. You can use any one of these. But I  recommend  to use cURL approach. Here we go..


get_headers  Approach:
/**
 * Get Remote File Size
 *
 * @param sting $url as remote file URL
 * @return int as file size in byte
 */
function remote_file_size($url){
	# Get all header information
	$data = get_headers($url, true);
	# Look up validity
	if (isset($data['Content-Length']))
		# Return file size
		return (int) $data['Content-Length'];
}

Usage:
echo remote_file_size('http://www.google.com/images/srpr/logo4w.png');

Output:
19978

cURL  Approach:
/**
 * Remote File Size Using cURL
 * @param srting $url
 * @return int || void
 */
function remotefileSize($url) {
	$ch = curl_init($url);
	curl_setopt($ch, CURLOPT_NOBODY, 1);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
	curl_setopt($ch, CURLOPT_HEADER, 0);
	curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
	curl_setopt($ch, CURLOPT_MAXREDIRS, 3);
	curl_exec($ch);
	$filesize = curl_getinfo($ch, CURLINFO_CONTENT_LENGTH_DOWNLOAD);
	curl_close($ch);
	if ($filesize) return $filesize;
}

Usages:
echo remotefileSize('http://www.google.com/images/srpr/logo4w.png');

Output:
19978

8 comments:

  1. Thanks for the script i'm sure this will come in helpful.

    ReplyDelete
  2. AWESOME!! thank you so much, already using it for fallback procedures.. :)

    ReplyDelete
  3. Thanks from France !

    ReplyDelete
  4. how to get file size of https://userscloud.com/zly0j447pruv

    ReplyDelete
  5. The blog or and best that is extremely useful to keep I can share the ideas of the future as this is really what I was looking for, I am very comfortable and pleased to come here. Thank you very much.
    animal jam | five nights at freddy's | hotmail login

    ReplyDelete
  6. "Nice and good article.. it is very useful for me to learn and understand easily.. thanks for sharing your valuable information and time.. please keep updating.php jobs in hyderabad.
    "

    ReplyDelete

Go to top