最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PHP統(tǒng)計目錄大小的自定義函數(shù)分享

 更新時間:2014年11月18日 10:25:17   投稿:junjie  
這篇文章主要介紹了PHP統(tǒng)計目錄大小的自定義函數(shù)分享,本文使用遞歸方法統(tǒng)計一個目錄中所有文件的大小,需要的朋友可以參考下

計算文件、磁盤分區(qū)和目錄的大小在各種應(yīng)用程序中都是常見的任務(wù)。計算文件的大小可以通過前面介紹過的filesize()函數(shù)完成,統(tǒng)計磁盤大小也可以使用disk_free_space()和disk_total_space()兩個函數(shù)實現(xiàn)。但PHP目前并沒有提供目錄總大小的標準函數(shù),因此我們要自定義一個函數(shù)來完成這個任務(wù)。首先要考慮計算的目錄中有沒有包含其他子目錄的情況,如果沒有子目錄,目錄下所有文件的大小相加后的總和就是這個目錄的大小。如果包含子目錄,就按照這個方法再計算一下子目錄的大小,使用遞歸函數(shù)看來最適合此項任務(wù)。計算目錄大小的自定義函數(shù)如下所示:

復(fù)制代碼 代碼如下:

<?php
//自定義一個函數(shù)dirSize(),統(tǒng)計傳入?yún)?shù)的目錄大小
function dirSize($directory){
  $dir_size = 0; //用來累加各個文件大小
 
  if($dir_handle = @opendir($directory)){      //打開目錄,并判斷是否能成功打開
    while($filename = readdir($dir_handle)){     //循環(huán)遍歷目錄下的所有文件
        if($filename != "."&& $filename != ".."){     //一定要排除兩個特殊的目錄
            $subFile = $directory."/".$filename;     //將目錄下的子文件和當前目錄相連
            if(is_dir($subFile))     //如果為目錄
            $dir_size += dirSize($subFile);     //遞歸地調(diào)用自身函數(shù),求子目錄的大小
            if(is_file($subFile))     //如果是文件
            $dir_size += filesize($subFile);     //求出文件的大小并累加
        }
    }
    closedir($dir_handle);      //關(guān)閉文件資源
    return $dir_size;     //返回計算后的目錄大小
  }
}
 
$dir_size = dirSize("phpMyAdmin");    //調(diào)用該函數(shù)計算目錄大小
echo round($dir_size/pow(1024,1),2)."KB";    //字節(jié)數(shù)轉(zhuǎn)換為“KB”單位并輸出
?>

也可以使用exec()或system()函數(shù)調(diào)用操作系統(tǒng)命令“du”來返回目錄的大小。但出于安全原因,這些函數(shù)通常是禁用的,而且不利于跨平臺操作。

相關(guān)文章

最新評論

黑河市| 桂阳县| 玛多县| 石城县| 察雅县| 永兴县| 泾阳县| 斗六市| 尚义县| 新兴县| 许昌县| 安仁县| 马尔康县| 丰台区| 永善县| 驻马店市| 高阳县| 玉环县| 广汉市| 五家渠市| 长寿区| 印江| 伊宁市| 板桥市| 那曲县| 会理县| 含山县| 万年县| 布拖县| 长海县| 武功县| 衡水市| 景德镇市| 威远县| 佛坪县| 讷河市| 漳州市| 瑞金市| 辰溪县| 桦甸市| 庄浪县|