• 技术文章 >后端开发 >php教程

    0x00000050电脑蓝屏代码 php获取某个目录大小的代码

    2016-07-29 08:38:47原创649
    大致程序思想就是使用递规来计算目录占用空间多少, 然后再把这个占用空间的值写进文本文件里, 那么只要访问这个txt文件就知道占用了多少空间, 不用频繁获取而读磁盘, 节省资源. 每次用户如果上传的文件或者删除了文件, 那么又重新进行统计. 当然, 也可以把统计结果保存到数据库里.

    复制代码 代码如下:


    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啊之类的函数:

    复制代码 代码如下:


    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";
    }
    }


    用法很简单:

    复制代码 代码如下:


    $size_zip=countDirSize("../zip/");
    $size_zip=get_real_size($size_zip);


    就这么简单了,呵呵。

    复制代码 代码如下:


    /**
    * 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;
    ?>

    以上就介绍了0x00000050电脑蓝屏代码 php获取某个目录大小的代码,包括了0x00000050电脑蓝屏代码方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:require_once php include,include_once,require,require_once 下一篇:photoshopcs5破解方法 php项目打包方法第1/2页

    相关文章推荐

    • 教你如何使用gdb调试php!• php使用反射插入对象示例分享_PHP教程• php判断手机访问还是电脑访问示例分享_PHP教程• php header()函数设置页面Cache缓存_PHP教程• 用MySQL内建复制来最佳化可用性(七)_PHP教程

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网