PHP filesize 函数用于获取文件大小。在处理文件上传或者下载时,我们需要知道文件的大小来做出相应的处理。
一、获取文件大小
使用 filesize 函数,获取文件大小非常简单:
$filesize = filesize('/path/to/file');
其中,参数 '/path/to/file' 是待获取文件大小的文件路径,返回值 $filesize 单位为字节(Byte)。
如果想将字节数转化为易读的格式,我们可以使用以下函数:
function formatSizeUnits($bytes) { if ($bytes >= 1073741824) { $bytes = number_format($bytes / 1073741824, 2) . ' GB'; } elseif ($bytes >= 1048576) { $bytes = number_format($bytes / 1048576, 2) . ' MB'; } elseif ($bytes >= 1024) { $bytes = number_format($bytes / 1024, 2) . ' KB'; } elseif ($bytes > 1) { $bytes = $bytes . ' bytes'; } elseif ($bytes == 1) { $bytes = $bytes . ' byte'; } else { $bytes = '0 bytes'; } return $bytes; }
使用上述函数将文件大小转化成易读的格式:
$filesize = filesize('/path/to/file'); $formattedSize = formatSizeUnits($filesize); echo "文件大小为 $formattedSize";
二、遍历文件夹
有时候我们需要获取文件夹中所有文件的大小,可以使用 PHP 中的 glob 函数,该函数可以用来获取一个文件夹下的所有文件。
$files = glob('/path/to/folder/*'); $totalSize = 0; foreach ($files as $file) { if (is_file($file)) { $totalSize += filesize($file); } } $formattedSize = formatSizeUnits($totalSize); echo "文件夹大小为 $formattedSize";
上述代码中,我们使用了一个循环遍历文件夹内的文件,并使用 filesize 函数获取文件的大小,计算出文件夹的总大小。
三、判断文件是否存在
在获取文件大小之前,我们需要确保该文件已经存在,需要使用 file_exists 函数判断文件是否存在:
if (file_exists('/path/to/file')) { $filesize = filesize('/path/to/file'); $formattedSize = formatSizeUnits($filesize); echo "文件大小为 $formattedSize"; } else { echo "文件不存在"; }
如果判断文件不存在,将会输出 "文件不存在"。
四、获取远程文件大小
有时候,我们需要获取远程文件的大小,可以使用 PHP 中的 cURL 扩展库,该库可以用来进行 HTTP 请求。
$ch = curl_init('http://example.com/file.txt'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); curl_setopt($ch, CURLOPT_HEADER, TRUE); curl_setopt($ch, CURLOPT_NOBODY, TRUE); curl_exec($ch); $filesize = curl_getinfo($ch, CURLINFO_CONTENT_LENGTH_DOWNLOAD); $formattedSize = formatSizeUnits($filesize); echo "文件大小为 $formattedSize"; curl_close($ch);
上述代码中,我们首先使用 cURL 进行 HTTP 请求,设置方法为 HTTP HEAD,该方法只返回文件头信息,不包括文件内容。然后使用 curl_getinfo 函数获取文件大小,计算出文件的大小。
总结
filesize 函数是一个非常有用的 PHP 内置函数,可以用来获取文件大小。在处理文件上传或者下载时,需要获取文件大小来做出相应的处理。除此之外,我们还介绍了如何遍历文件夹、判断文件是否存在以及获取远程文件的大小等内容。希望对你有所帮助!