PHP 7.0.6 Released

getimagesizefromstring

(PHP 5 >= 5.4.0, PHP 7)

getimagesizefromstringGet the size of an image from a string

Description

array getimagesizefromstring ( string $imagedata [, array &$imageinfo ] )

Identical to getimagesize() except that getimagesizefromstring() accepts a string instead of a file name as the first parameter.

See the getimagesize() documentation for details on how this function works.

Parameters

imagedata

The image data, as a string.

imageinfo

See getimagesize().

Return Values

See getimagesize().

Examples

Example #1 getimagesizefromstring() example

<?php
$img 
'/path/to/test.png';

// Open as a file
$size_info1 getimagesize($img);

// Or open as a string
$data       file_get_contents($img);
$size_info2 getimagesizefromstring($data);
?>

See Also

User Contributed Notes

imageman
2 years ago
getimagesizefromstring function for < 5.4

<?php
  
if (!function_exists('getimagesizefromstring')) {
      function
getimagesizefromstring($string_data)
      {
        
$uri = 'data://application/octet-stream;base64,'  . base64_encode($string_data);
         return
getimagesize($uri);
      }
}
?>
sarah at anigel dot net
2 years ago
Just a quick comment on the solution by imageman for versions < 5.4 you will need to enable allow_url_fopen in order to use the data wrapper.
josh at karmabunny dot com dot au
2 years ago
If you need to get the type (but not the size) of an image contained within a string, you can make use of the signatures contained within the headers of various file formats.

<?php
function get_img_type($data) {
   
$magics = array(
       
'ffd8ff' => 'jpg',
       
'89504e470d0a1a0a' => 'png',
    );
       
    foreach (
$magics as $str => $ext) {
        if (
strtolower(bin2hex(substr($data, 0, strlen($str)/2))) == $str) return $ext;
    }
       
    return
NULL;
}
?>

If required, additional magic signatures can be added to the array, there is a page on Wikipedia with a good list:
http://en.wikipedia.org/wiki/List_of_file_signatures
To Top