【问题标题】:How to convert getimagesize() result to variables?如何将 getimagesize() 结果转换为变量?
【发布时间】:2014-06-27 01:48:29
【问题描述】:

是否有一个函数可以将getimagesize() 的所有结果作为关联数组或具有自我解释名称的单个变量返回?我知道我可以使用 foreach 循环来做到这一点,但一定有更好的方法。

var_dump(getimagesize('foo.png')); 的结果:

array
  0 => int 500
  1 => int 250
  2 => int 3
  3 => string 'width="500" height="250"' (length=24)
  'bits' => int 8
  'mime' => string 'image/png' (length=9)

列表()

函数 list 因其行为而无法工作:

注意:list() 仅适用于数值数组,并假定数值为 索引从 0 开始。

提取()

如果您使用前缀,函数extract 可以工作:

请注意,仅当 flags 为 EXTR_PREFIX_SAME 时才需要前缀, EXTR_PREFIX_ALL、EXTR_PREFIX_INVALID 或 EXTR_PREFIX_IF_EXISTS。如果 前缀结果不是一个有效的变量名,它没有被导入 符号表。前缀自动从数组中分离出来 下划线作为键。

但是你会有像<prefix>_0<prefix>_1这样的变量。这不言自明。

【问题讨论】:

    标签: php arrays variables getimagesize


    【解决方案1】:

    我发现的唯一方法是使用array_values() 获取纯数字索引数组并将其与list() 一起使用。

    单个变量的解决方案:

    list(
          $width, 
          $height, 
          $mimeType, 
          $htmlAttr, 
          $bits, 
          $mime
    ) = array_values(getimagesize('foo.png'));
    

    关联数组的解决方案:

    list(
         $imgInfo['width'], 
         $imgInfo['height'], 
         $imgInfo['mimeType'], 
         $imgInfo['htmlAttr'], 
         $imgInfo['bits'], 
         $imgInfo['mime']
    ) = array_values(getimagesize('foo.png'));
    

    【讨论】:

      猜你喜欢
      • 2010-10-22
      • 2020-07-09
      • 2022-11-02
      • 1970-01-01
      • 1970-01-01
      • 2016-11-21
      • 1970-01-01
      • 2014-08-05
      相关资源
      最近更新 更多