filesize函数用法

2026-06-11 0 10

`filesize()` 是 PHP 中用于获取文件大小的内置函数,返回文件的字节数。如果出错(如文件不存在),则返回 `false` 并产生一个 `E_WARNING` 警告。

基本用法

<?php
$filename = ‘example.txt’;
$size = filesize($filename);

if ($size !== false) {
echo “文件 {$filename} 的大小是:{$size} 字节”;
} else {
echo “获取文件大小失败,请检查文件是否存在或权限是否正确”;
}
?>

**参数**:`$filename`(字符串)——要检查大小的文件路径。

**返回值**:成功返回文件字节数(整数),失败返回 `false`。

重要注意事项

**1. 必须先检查文件是否存在**
如果文件不存在,`filesize()` 会返回 `false` 并报错。建议先用 `file_exists()` 检查:

$path = ‘path/to/file.txt’;

if (file_exists($path)) {
$size = filesize($path);
echo “文件大小:{$size} 字节”;
} else {
echo “文件不存在”;
}

**2. 处理大文件(超过 2GB)的问题**
PHP 的整数类型是有符号的,在 32 位系统上无法直接表示超过 2GB 的文件大小,`filesize()` 可能返回意外结果。对于 2GB 到 4GB 的文件,可以用以下方式解决:

$size = sprintf(“%u”, filesize($large_file));

在 64 位系统上则无此问题。

**3. 结果会被缓存**
`filesize()` 的结果会被 PHP 缓存以提高性能。如果文件大小在脚本执行期间发生变化,需要使用 `clearstatcache()` 清除缓存:

clearstatcache();
$size = filesize($filename);

错误处理建议

`filesize()` 失败常见原因及应对方法:

| 原因 | 解决方法 |
|——|———-|
| 文件不存在 | 先用 `file_exists()` 检查 |
| 权限不足 | 确保 PHP 进程有读取权限(Linux 下建议 644) |
| 路径错误 | 使用绝对路径或确认相对路径正确 |

也可以使用 `@` 错误抑制符(不推荐生产环境使用):

$size = @filesize($file);
if ($size !== false) {
// 正常处理
}

实际应用:格式化显示文件大小

`filesize()` 返回的是字节数,直接显示不直观。可以封装一个函数将字节转换为人类可读的格式:

function formatSize($bytes, $decimals = 2) {
$units = [‘B’, ‘KB’, ‘MB’, ‘GB’, ‘TB’];
$factor = floor((strlen($bytes) – 1) / 3);
return sprintf(“%.{$decimals}f”, $bytes / pow(1024, $factor)) . ‘ ‘ . $units[$factor];
}

// 使用示例
$size = filesize(‘example.txt’);
echo formatSize($size); // 输出类似 “1.23 MB”

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

版权声明:所有的源码、软件和资料,不得使用于非法商业用途,不得违反国家法律,一切关于该资源商业行为与本站无关。

免费cms模板 建站百科 filesize函数用法 https://www.mianfeicms.com/10450.html

相关文章

猜你喜欢
发表评论
暂无评论