国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

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

2024-09-04 11:43:05
字體:
供稿:網(wǎng)友

這篇文章主要介紹了PHP統(tǒng)計(jì)目錄大小的自定義函數(shù)分享,本文使用遞歸方法統(tǒng)計(jì)一個(gè)目錄中所有文件的大小,需要的朋友可以參考下

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

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

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

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 溆浦县| 云阳县| 武胜县| 齐齐哈尔市| 贺州市| 北海市| 湘乡市| 新巴尔虎左旗| 平远县| 鄯善县| 永吉县| 莒南县| 中江县| 奎屯市| 禄劝| 天峨县| 海林市| 苏尼特左旗| 蒙山县| 桦南县| 垫江县| 外汇| 防城港市| 元氏县| 方城县| 同心县| 凌海市| 贺州市| 武宣县| 普宁市| 德兴市| 井冈山市| 双鸭山市| 始兴县| 时尚| 申扎县| 柳林县| 平武县| 修文县| 崇文区| 花莲县|