PHP是一种编程语言,它可以让开发者使用简单的代码来实现复杂的功能。本文将介绍如何使用PHP获取文件大小的方法。
使用filesize()函数
$size = filesize($file);
filesize()函数可以获取文件的大小,$file是文件路径,返回值为文件大小,单位为字节。
使用fopen()函数
$fp = fopen($file, "r"); $size = fstat($fp)['size']; fclose($fp);
fopen()函数可以打开文件,$file是文件路径,"r"表示只读模式,fstat()函数可以获取文件信息,返回值为数组,其中size表示文件大小,单位为字节,fclose()函数可以关闭文件。
使用filesize()函数转换单位
$size = filesize($file); $unit = array('B', 'KB', 'MB', 'GB', 'TB', 'PB'); $pos = 0; while ($size >= 1024) { $size /= 1024; $pos++; } $size = round($size, 2) . " " . $unit[$pos];
filesize()函数可以获取文件的大小,$file是文件路径,$unit是存储单位的数组,$pos表示单位的下标,当文件大小大于1024时,循环将文件大小除以1024,并将单位下标加1,将文件大小转换为指定单位,并保留2位小数。
使用filesize()函数获取文件夹大小
function getDirSize($dir) { $size = 0; foreach (glob($dir . '/*') as $each) { $size += is_file($each) ? filesize($each) : getDirSize($each); } return $size; } $size = getDirSize($dir);
getDirSize()函数可以获取文件夹的大小,$dir是文件夹路径,使用foreach循环遍历文件夹,如果是文件,使用filesize()函数获取文件大小,如果是文件夹,使用getDirSize()函数递归调用,返回文件夹大小。
使用filesize()函数转换单位
$unit = array('B', 'KB', 'MB', 'GB', 'TB', 'PB'); $pos = 0; while ($size >= 1024) { $size /= 1024; $pos++; } $size = round($size, 2) . " " . $unit[$pos];
$unit是存储单位的数组,$pos表示单位的下标,当文件大小大于1024时,循环将文件大小除以1024,并将单位下标加1,将文件大小转换为指定单位,并保留2位小数。
以上就是PHP获取文件大小的方法,使用filesize()函数可以获取文件大小,使用fopen()函数可以获取文件大小,使用getDirSize()函数可以获取文件夹大小,使用filesize()函数转换单位,就可以获取文件大小了。