- 相干保举
PHP若何自界说一个函数
计较文件、磁盘分区和目次的巨细在各类操纵法式中都是罕见的使命。计较文件的巨细能够经由过程后面先容过的filesize()函数实现,统计磁盘巨细也能够操纵disk_free_space()和disk_total_space()两个函数实现。但PHP今朝并不供给目次总巨细的规范函数,是以咱们要自界说一个函数来实现这个使命。起首要斟酌计较的目次中有不包罗其余子目次的环境,若是不子目次,目次下一切文件的巨细相加后的总和便是这个目次的巨细。若是包罗子目次,就根据这个方式再计较一会儿目次的巨细,操纵递归函数看来最合适此项使命。计较目次巨细的自界说函数以下所示:
复制代码 代码以下:
<?php
//自界说一个函数dirSize(),统计传入参数的目次巨细
function dirSize($directory){
$dir_size = 0; //用来累加各个文件巨细
if($dir_handle = @opendir($directory)){ //翻开目次,并判定是不是能胜利翻开
while($filename = readdir($dir_handle)){ //轮回遍历目次下的一切文件
if($filename != "."&& $filename != ".."){ //必然要解除两个特别的目次
$subFile = $directory."/".$filename; //将目次下的子文件和以后目次相连
if(is_dir($subFile)) //若是为目次
$dir_size += dirSize($subFile); //递归地挪用本身函数,求子目次的巨细
if(is_file($subFile)) //若是是文件
$dir_size += filesize($subFile); //求出文件的巨细并累加
}
}
closedir($dir_handle); //封闭文件资本
return $dir_size; //前往计较后的目次巨细
}
}
$dir_size = dirSize("phpMyAdmin"); //挪用该函数计较目次巨细
echo round($dir_size/pow(1024,1),2)."KB"; //字节数转换为“KB”单元并输入
?>
也能够操纵exec()或system()函数挪用操纵体系号令“du”来前往目次的巨细。但出于宁静缘由,这些函数凡是是禁用的,并且倒霉于跨平台操纵。</p
【PHP若何自界说一个函数】相干文章:
php自界说扩大名获得函数示例03-20
用php自界说函数之递归删除文件及目次11-17
PHP名目开辟中最常用的自界说函数清算03-17
操纵PHP自界说多进制03-02
PHP函数常识总结11-28
PHP数组函数常识11-29
PHP类与机关函数12-11
PHP函数的区分及用法11-28
php择要天生函数详解03-02