PHP如何自定義一個函數
計算文件、磁盤分區和目錄的大小在各種應用程序中都是常見的任務。計算文件的大小可以通過前面介紹過的filesize()函數完成,統計磁盤大小也可以使用disk_free_space()和disk_total_space()兩個函數實現。但PHP目前并沒有提供目錄總大小的標準函數,因此我們要自定義一個函數來完成這個任務。首先要考慮計算的目錄中有沒有包含其他子目錄的情況,如果沒有子目錄,目錄下所有文件的大小相加后的總和就是這個目錄的大小。如果包含子目錄,就按照這個方法再計算一下子目錄的大小,使用遞歸函數看來最適合此項任務。計算目錄大小的自定義函數如下所示:
復制代碼 代碼如下:
<?php
/pic/p>
function dirSize($directory){
$dir_size = 0; /pic/p>
if($dir_handle = @opendir($directory)){ /pic/p>
while($filename = readdir($dir_handle)){ /pic/p>
if($filename != "."&& $filename != ".."){ /pic/p>
$subFile = $directory."/".$filename; /pic/p>
if(is_dir($subFile)) /pic/p>
$dir_size += dirSize($subFile); /pic/p>
if(is_file($subFile)) /pic/p>
$dir_size += filesize($subFile); /pic/p>
}
}
closedir($dir_handle); /pic/p>
return $dir_size; /pic/p>
}
}
$dir_size = dirSize("phpMyAdmin"); /pic/p>
echo round($dir_size/pow(1024,1),2)."KB"; /pic/p>
?>
也可以使用exec()或system()函數調用操作系統命令“du”來返回目錄的大小。但出于安全原因,這些函數通常是禁用的,而且不利于跨平臺操作。</p
【PHP如何自定義一個函數】相關文章:
PHP分頁自定義函數09-27
如何使用php自定義函數實現漢字分割替換03-19
php自定義函數實現漢字分割替換01-06
php如何禁用eval函數12-29
php自定義擴展名獲取函數示例01-11
PHP中生成UUID自定義函數分享01-07
PHP項目開發中最常用的自定義函數整理09-22
用php自定義函數之遞歸刪除文件及目錄12-07
如何用php構造函數的小例子11-17