Home > Article > Backend Development > PHP code to calculate specified folder information (number of folders, number of files, folder size)
This article introduces a piece of code that uses PHP to calculate the information of a specified folder. It can count the number of folders, the number of files, the size of the folder, etc. Friends in need can refer to it.
The following code is implemented: Calculate the size of the folder, including subfolders, and format the output folder size, number of files, and number of subfolders. As follows: <? //代码也可以用于统计目录数 //格式化输出目录大小 单位:Bytes,KB,MB,GB //by bbs.it-home.org function getDirectorySize($path) { $totalsize = 0; $totalcount = 0; $dircount = 0; if ($handle = opendir ($path)) { while (false !== ($file = readdir($handle))) { $nextpath = $path . '/' . $file; if ($file != '.' && $file != '..' && !is_link ($nextpath)) { if (is_dir ($nextpath)) { $dircount++; $result = getDirectorySize($nextpath); $totalsize += $result['size']; $totalcount += $result['count']; $dircount += $result['dircount']; } elseif (is_file ($nextpath)) { $totalsize += filesize ($nextpath); $totalcount++; } } } } closedir ($handle); $total['size'] = $totalsize; $total['count'] = $totalcount; $total['dircount'] = $dircount; return $total; } //格式化文件大小信息 function sizeFormat($size) { $sizeStr=''; if($size<1024) { return $size." bytes"; } else if($size<(1024*1024)) { $size=round($size/1024,1); return $size." KB"; } else if($size<(1024*1024*1024)) { $size=round($size/(1024*1024),1); return $size." MB"; } else { $size=round($size/(1024*1024*1024),1); return $size." GB"; } } //调用示例 $path="/var/www/jbxue"; $ar=getDirectorySize($path); echo "<h4>路径 : $path</h4>"; echo "目录大小 : ".sizeFormat($ar['size'])."<br>"; echo "文件数 : ".$ar['count']."<br>"; echo "目录术 : ".$ar['dircount']."<br>"; //print_r($ar); 打印出数组表示的内容 ?> |