您的位置:

PHP filesize 函数

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 内置函数,可以用来获取文件大小。在处理文件上传或者下载时,需要获取文件大小来做出相应的处理。除此之外,我们还介绍了如何遍历文件夹、判断文件是否存在以及获取远程文件的大小等内容。希望对你有所帮助!