如何在php中获取目录大小
我正在构建一个需要获取目录大小的存储系统如何获取? 我用这个如何在php中获取目录大小,php,Php,我正在构建一个需要获取目录大小的存储系统如何获取? 我用这个 $file_directory = './directory/path'; $output = exec('du -sk ' . $file_directory); $filesize = trim(str_replace($file_directory, '', $output)) * 1024;$file_directory = './directory/path'; $output = exec('du -sk ' . $fil
$file_directory = './directory/path';
$output = exec('du -sk ' . $file_directory);
$filesize = trim(str_replace($file_directory, '', $output)) * 1024;$file_directory = './directory/path';
$output = exec('du -sk ' . $file_directory);
$filesize = trim(str_replace($file_directory, '', $output)) * 1024;
但这并没有给我正确的回答。
我想为每个用户提供10GB的存储空间,使用它会对您有用
<?php
$units = explode(' ', 'B KB MB GB TB PB');
$SIZE_LIMIT = 5368709120; // 5 GB change it to 10 Gb
$disk_used = foldersize("/folder/");
$disk_remaining = $SIZE_LIMIT - $disk_used;
echo("<html><body>");
echo('diskspace used: ' . format_size($disk_used) . '<br>');
echo( 'diskspace left: ' . format_size($disk_remaining) . '<br><hr>');
echo("</body></html>");
function foldersize($path) {
$total_size = 0;
$files = scandir($path);
$cleanPath = rtrim($path, '/'). '/';
foreach($files as $t) {
if ($t<>"." && $t<>"..") {
$currentFile = $cleanPath . $t;
if (is_dir($currentFile)) {
$size = foldersize($currentFile);
$total_size += $size;
}
else {
$size = filesize($currentFile);
$total_size += $size;
}
}
}
return $total_size;
}
function format_size($size) {
global $units;
$mod = 1024;
for ($i = 0; $size > $mod; $i++) {
$size /= $mod;
}
$endIndex = strpos($size, ".")+3;
return substr( $size, 0, $endIndex).' '.$units[$i];
}
?>
读这篇嗨,你已经看过了吗?(使用RecusiveDirectoryIterator可以替代du变体)或者在此处查看完整问题和所有答案