文字

getimagesizefromstring

(PHP 5 >= 5.4.0, PHP 7)

getimagesizefromstring从字符串中获取图像尺寸信息

说明

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

getimagesize() 函数。 区别是 getimagesizefromstring() 第一个参数是图像数据的字符串表达,而不是文件名。

关于本函数如何工作的更多信息请参见 getimagesize() 函数。

参数

imagedata

图像数据的字符串表示。

imageinfo

参见 getimagesize() 函数。

返回值

参见 getimagesize() 函数。

范例

Example #1 getimagesizefromstring() 函数例程

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

// 以文件方式打开
$size_info1  getimagesize ( $img );

// 以字符串格式打开
$data        file_get_contents ( $img );
$size_info2  getimagesizefromstring ( $data );
?>

参见

  • getimagesize() - 取得图像大小

用户评论:

[#1] sarah at anigel dot net [2014-02-10 08:46:29]

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.

[#2] imageman [2013-12-24 19:10:38]

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);
      }
}
?>

[#3] josh at karmabunny dot com dot au [2013-10-17 05:25:31]

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($data0strlen($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

上一篇: 下一篇: