Search code examples
phpfilesize

How can I the size of an image file from the URL?


Images and script are hosted on the same account (one site), but we know only the URL of the image.

$image = "http://example.com/images/full-1091.jpg"

How can we get the size of this file?

Pseudo-code:

{ do something with $image and get $image_size }
echo $image_size;

I would prefer $image_size to be formatted in human-readable file sizes, like "156,8 Kbytes" or "20,1 Mbytes".


Solution

  • Use filesize function like this:

    echo filesize($filename) . ' bytes';
    

    You can also format the unit of the size with this function:

    function format_size($size) {
          $sizes = array(" Bytes", " KB", " MB", " GB", " TB", " PB", " EB", " ZB", " YB");
          if ($size == 0) { return('n/a'); } else {
          return (round($size/pow(1024, ($i = floor(log($size, 1024)))), 2) . $sizes[$i]); }
    }