首先使用filesize()函数获取本地视频文件大小,再通过格式化函数转换为KB、MB或GB单位;对于远程文件,则发送HTTP HEAD请求读取Content-Length响应头来获取大小信息。

获取视频文件大小在PHP开发中很常见,比如上传验证、资源管理等场景。关键在于准确读取文件的字节信息,并以合适单位展示。下面介绍几种实用方法。
使用filesize()函数直接获取
PHP内置的filesize()函数是最直接的方式,能返回指定文件的字节数。
注意:文件必须存在且PHP有读取权限,否则会返回false。示例代码:
- $file = 'example.mp4';
- if (file_exists($file)) {
- $size = filesize($file);
- echo "文件大小:" . number_format($size / (1024 * 1024), 2) . " MB";
- }
格式化输出更友好的单位
原始字节数不直观,可封装一个函数自动转为KB、MB或GB。
立即学习“PHP免费学习笔记(深入)”;
例如:
- function formatFileSize($bytes) {
- if ($bytes
- elseif ($bytes
- elseif ($bytes
- else return number_format($bytes / (1024 * 1024 * 1024), 2) . ' GB';
- }
- // 使用
- echo formatFileSize(filesize('example.mp4'));
处理远程视频文件大小
如果视频在远程服务器上,filesize()无法使用。可通过发送HTTP HEAD请求获取Content-Length头。
示例:
- $url = 'https://example.com/video.mp4';
- $headers = get_headers($url, 1);
- if (isset($headers['Content-Length'])) {
- $size = (int)$headers['Content-Length'];
- echo formatFileSize($size);
- }
基本上就这些。本地文件用filesize()最简单,远程则依赖HTTP头信息。结合格式化函数,能更清晰地展示结果。











