php获取某个目录大小的代码
2023-06-13 09:14:02 时间
大致程序思想就是使用递规来计算目录占用空间多少,然后再把这个占用空间的值写进文本文件里,那么只要访问这个txt文件就知道占用了多少空间,不用频繁获取而读磁盘,节省资源.每次用户如果上传的文件或者删除了文件,那么又重新进行统计.当然,也可以把统计结果保存到数据库里.
复制代码代码如下:
functioncountDirSize($dir)
{
$handle=opendir($dir);
while(false!==($FolderOrFile=readdir($handle)))
{
if($FolderOrFile!="."&&$FolderOrFile!="..")
{
if(is_dir("$dir/$FolderOrFile")){
$sizeResult+=getDirSize("$dir/$FolderOrFile");
}else{
$sizeResult+=filesize("$dir/$FolderOrFile");
}
}
}
closedir($handle);
return$sizeResult;
}
把字节转换为正常的K啊M啊之类的函数:
functionget_real_size($size){
$kb=1024;//Kilobyte
$mb=1024*$kb;//Megabyte
$gb=1024*$mb;//Gigabyte
$tb=1024*$gb;//Terabyte
if($size<$kb){
return$size."B";
}elseif($size<$mb){
returnround($size/$kb,2)."KB";
}elseif($size<$gb){
returnround($size/$mb,2)."MB";
}elseif($size<$tb){
returnround($size/$gb,2)."GB";
}else{
returnround($size/$tb,2)."TB";
}
}
用法很简单:
$size_zip=countDirSize("../zip/");
$size_zip=get_real_size($size_zip);
就这么简单了,呵呵。
<?
/**
*File:fetchuserdirectoryusesize
*Author:heiyeluren<heiyeluren_AT_gmail_com>
*Create:2005-9-1916:20
*Modifed:2005-9-1916:41
*/
/***基本函数***/
//计算目录大小
functioncountDirSize(dir)
{
handle=opendir(dir);
while(false!==(FolderOrFile=readdir(handle)))
{
if(FolderOrFile!="."&&FolderOrFile!="..")
{
if(is_dir("dir/FolderOrFile")){
sizeResult+=getDirSize("dir/FolderOrFile");
}else{
sizeResult+=filesize("dir/FolderOrFile");
}
}
}
closedir(handle);
returnsizeResult;
}
//保存用户文件大小
functionsaveDirSize(userDir)
{
userDirSize=countDirSize(userDir);
if(!fp=fopen(userDir."/dir_size.txt","w+")){
die("Openfilefailed");
}else{
fwrite(fp,dirSize);
}
}
//获取用户目录的大小
functiongetDirSize(userDir)
{
user=addslashes(userDir);
sizeFile=userDir."/dir_size.txt";
if(!fp=fopen(sizeFile,"r"){
return0;
}else{
dirSize=fread(fp,filesize(sizeFile));
}
returndirSize;
}
/***调用实例***/
user="heiyeluren";
userPath="./user/".user;
//如果用户执行了删除或者上传文件的操作就重新获取目录大小
if(action=="upload"||action=="delete"){
saveDirSize(userPath);
}
userDirSize=getDirSize(userPath)/1024;
echo"用户:".user;
echo"占用空间:".userDirSize;
?>
相关文章
- 交互PHP与MySQL联动:实现数据交互(php与mysql数据库)
- 一步到位:Linux下快速搭建PHP环境(linux一键php环境搭建)
- Linux系统下如何快速安装PHP(linux命令安装php)
- 一步步获取 PHP 导入 MySQL 无忧(php导入mysql)
- Linux环境下,如何高效、简单地编写PHP代码(linux下写php)
- 用PHP给MySQL数据库做个彻底的备份(php备份mysql数据库)
- 简单示例AJAX结合PHP代码实现登录效果代码
- php中获取关键词及所属来源搜索引擎名称的代码
- PHP计算代码执行耗时的代码修正网上普遍错误
- php和数据库结合的一个简单的web实例代码分析(php初学者)
- php中计算中文字符串长度、截取中文字符串的函数代码
- js通过googleAIP翻译PHP系统的语言配置的实现代码
- php获取百度的热词数据的代码
- 让PHP更快的提供文件下载的代码
- 一个简单的网页密码登陆php代码
- UCenter批量添加用户的php代码
- 很让人受教的提高php代码质量36计
- php多文件上传功能实现原理及代码
- PHP获取当前日期所在星期(月份)的开始日期与结束日期(实现代码)
- js获取php变量的实现代码
- php将文本文件转换csv输出的方法