当前位置: 首页> 最新文章列表> PHP图片操作:如何获取图片的尺寸和文件大小

PHP图片操作:如何获取图片的尺寸和文件大小

gitbox 2025-06-06

介绍

在日常Web开发中,图片上传和处理是一项基础而常见的功能。获取图片的尺寸和大小信息,能够帮助我们进行合理的布局和资源控制。本文将介绍如何使用 PHP 的内置函数,快速读取图片的尺寸、MIME 类型以及文件大小。

使用 getimagesize() 获取图片尺寸

在 PHP 中,可以通过 getimagesize() 函数获取图片的详细尺寸信息。该函数返回一个数组,其中包含以下内容:

  • 宽度(像素)
  • 高度(像素)
  • 图像类型代号
  • HTML 的 height 属性字符串
  • HTML 的 width 属性字符串
  • 图像类型的 MIME 描述
  • JPEG 文件中的缩略图信息(如有)
  • SWF 文件中的缩略图信息(如有)

以下是一个简单示例,用于读取本地图片的尺寸:


$size = getimagesize("example.jpg");
$width = $size[0];
$height = $size[1];

上述代码会将 example.jpg 的宽度和高度分别赋值到 $width$height 变量中。

获取远程图片尺寸

getimagesize() 同样支持读取远程图片的信息,只需要将图片的完整 URL 作为参数传入即可:


$size = getimagesize("https://example.com/example.jpg");
$width = $size[0];
$height = $size[1];

这样就能获取到远程图片的尺寸数据,和本地图片使用方式相同。

获取图片的 MIME 类型

除尺寸之外,getimagesize() 还可以返回图片的 MIME 类型信息,常用于内容验证或设置响应头:


$size = getimagesize("example.jpg");
$mime_type = $size['mime'];

示例中返回的 MIME 类型可能为 image/jpegimage/png 等。

获取图片文件大小

使用 PHP 获取图片大小非常简单,通过 filesize() 函数即可实现,单位为字节:


$size = filesize("example.jpg");

上述代码会将 example.jpg 的文件大小赋值给 $size 变量。

格式化文件大小为友好单位

为了更好地展示文件大小,可以通过以下函数将其转换为更易读的格式(如 KB、MB):


function format_size($bytes) {
    $units = array('B', 'KB', 'MB', 'GB', 'TB');
    $i = 0;
    while ($bytes >= 1024) {
        $bytes /= 1024;
        $i++;
    }
    return round($bytes, 2) . ' ' . $units[$i];
}

$size = filesize("example.jpg");
$formatted_size = format_size($size);

这个方法能将原始字节值转化为如 10.5 KB 这样更友好的显示格式。

总结

通过 PHP 提供的 getimagesize()filesize() 等函数,我们可以快速、高效地获取图片的尺寸、类型以及文件大小信息。无论是处理本地图片还是远程图片,这些工具都能大大提升开发效率,并增强用户体验。