微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php获取某个目录大小的代码

大致程序思想就是使用递规来计算目录占用空间多少,然后再把这个占用空间的值写进文本文件里,那么只要访问这个txt文件就知道占用了多少空间,不用频繁获取而读磁盘,节省资源. 每次用户如果上传文件或者删除文件,那么又重新进行统计. 当然,也可以把统计结果保存到数据库里.
<div class="codetitle"><a style="CURSOR: pointer" data="55163" class="copybut" id="copybut55163" onclick="doCopy('code55163')"> 代码如下:

<div class="codebody" id="code55163">
function countDirsize($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啊之类的函数
<div class="codetitle"><a style="CURSOR: pointer" data="46877" class="copybut" id="copybut46877" onclick="doCopy('code46877')"> 代码如下:
<div class="codebody" id="code46877">
function get_real_size($size) { $kb = 1024; // Kilobyte
$mb = 1024 $kb; // Megabyte
$gb = 1024
$mb; // Gigabyte
$tb = 1024 * $gb; // terabyte if($size < $kb) {
return $size." B";
}else if($size < $mb) {
return round($size/$kb,2)." KB";
}else if($size < $gb) {
return round($size/$mb,2)." MB";
}else if($size < $tb) {
return round($size/$gb,2)." GB";
}else {
return round($size/$tb,2)." TB";
}
}

用法很简单:
<div class="codetitle"><a style="CURSOR: pointer" data="24850" class="copybut" id="copybut24850" onclick="doCopy('code24850')"> 代码如下:
<div class="codebody" id="code24850">
$size_zip=countDirsize("../zip/");
$size_zip=get_real_size($size_zip);

就这么简单了,呵呵。 <div class="codetitle"><a style="CURSOR: pointer" data="64371" class="copybut" id="copybut64371" onclick="doCopy('code64371')"> 代码如下:
<div class="codebody" id="code64371">
<?
/
File: fetch user directory use size
Author: heiyeluren
Create: 2005-9-19 16:20
Modifed: 2005-9-19 16:41
/ /
基本函数 / //计算目录大小
function countDirsize(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;
} //保存用户文件大小
function saveDirsize(userDir)
{
userDirsize = countDirsize(userDir);
if (!fp = fopen(userDir."/dir_size.txt","w+")) {
die("Open file Failed");
} else {
fwrite(fp,dirsize);
}
} //获取用户目录的大小
function getDirsize(userDir)
{
user = addslashes(userDir);
sizefile = userDir."/dir_size.txt";
if (!fp = fopen(sizefile,"r") {
return 0;
} else {
dirsize = fread(fp,filesize(sizefile));
}
return dirsize;
}
/
调用实例 ***/
user = "heiyeluren";
userPath = "./user/".user; //如果用户执行了删除或者上传文件的操作就重新获取目录大小
if (action == "upload" || action == "delete") {
saveDirsize(userPath);
} userDirsize = getDirsize(userPath)/1024;
echo "用户: ".user;
echo "占用空间: ".userDirsize;
?>

原文地址:https://www.jb51.cc/php/29484.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

php目录

相关推荐