PHP列出指定目录文件大小

简介: PHP列出指定目录文件大小
<?php /** *author : liexusong */ function get_dir_size($dir) { $size = 0;//大小 $num_dir=0;//文件夹数量 $num_file=0;//文件数量 //保证右边绝对有'/' $path = rtrim(str_replace('\\', '/', $dir), '/').'/'; if(!is_dir($dir)) return; $dp = opendir($dir); if(!$dp) return; $out = '
'; while(($element = readdir($dp)) !== false) { if($element != '.' && $element != '..') { if(is_dir($path.$element)) { list($size_dir,$sub_num_dir,$sub_num_file,$sub_out) = get_dir_size($path.$element); $out .= '
'.$path.$element.':'; $out .= ''.setupSize($size_dir).',Sub dir:'.$sub_num_dir.',file:'.$sub_num_file.''.$sub_out.'
'; $size += $size_dir; $num_dir +=$sub_num_dir; $num_file +=$sub_num_file; $num_dir ++;//本文件夹 } else { $size += filesize($path.$element); //不显示文件列表 //echo '
'.$path.$element.':'. setupSize(filesize($path.$element)).'
'; $num_file++; } } } $out .= '
'; return array($size,$num_dir,$num_file,$out); } function setupColor($size){ } //转换单位($filesize是一个int) function setupSize($fileSize) { // $size = sprintf("%u", $fileSize); //echo $size.'
'; $size =$fileSize; if($size == 0) { return("0 Bytes"); } $sizename = array(" Bytes", " KB", " MB", " GB", " TB", " PB", " EB", " ZB", " YB"); return round($size/pow(1024, ($i = floor(log($size, 1024)))), 2) . $sizename[$i]; } header('Content-type:text/html;Charset=utf-8'); //取出来的是字节,所以还要除以1024*1024,然后用number_format()四舍五入取两位小数 //就是这里造成了windows资源管理器中文件夹大小不一致的原因,因为后者是直接截取2位 //E:\WebsiteData\200MB\sundayschool-CCFIILPSSVZZdggjnnqtww1447AAEHHK\www $full_use_space=1073741824*20;//可使用空间大小G $path = dirname(__FILE__); //$path =substr($path,0,-11); //$size = get_dir_size($path); list($size,$num_dir,$num_file,$out)= get_dir_size($path); //echo $path.$dir; //echo $size.' Bytes'; ?> <?php echo '
可使用空间大小:'; echo setupSize($full_use_space);
echo ‘

已经使用空间大小:’;

echo setupSize($size);


echo ‘

剩余空间大小:’;

$can_use_size = $full_use_space - $size;
echo c a n u s e s i z e < 0 ? ′ − ′ : ′ ′ ; e c h o s e t u p S i z e ( a b s ( can_use_size < 0 ? '-':''; echo setupSize(abs(can 
u
 se 
s
 ize<0? 
 : 
′′
 ;echosetupSize(abs(can_use_size));
echo ‘
总目录数:’;
echo $num_dir;
echo ‘
总文件数:’;
echo $num_file;
echo ‘
’;
echo $out;
//echo ‘
’;
//echo number_format($size /1024/1024, 2) , ‘M’;
?>


相关文章
|
22天前
|
应用服务中间件 PHP nginx
当你的nginx服务器和php服务器不在一起的时候,这个nginx 的root目录问题
两个服务器的网站代码目录需要对齐,docker容器里面也是一样
|
10月前
|
存储 缓存 PHP
【PHP开发专栏】PHP文件操作与目录管理
【4月更文挑战第30天】本文介绍了PHP中的文件操作和目录管理。内容涵盖文件的打开、关闭、读写、删除及状态检测,如`fopen`、`fclose`、`fread`、`fwrite`、`file_get_contents`等函数。此外,还涉及文件高级操作如锁定和指针操作。在目录管理方面,讲解了创建、删除目录及读取目录内容的函数,如`mkdir`、`rmdir`、`scandir`等。通过示例代码展示了如何在实践中应用这些函数。理解这些基础知识对处理文件系统相关问题至关重要。
91 1
|
10月前
|
运维 Linux Apache
LAMP架构调优(十)——Apache禁止指定目录PHP解析与错误页面优化
LAMP架构调优(十)——Apache禁止指定目录PHP解析与错误页面优化
299 2
|
PHP
php开发实战分析(4):php调用封装函数包含文件路径自适应不同目录的解决方案($_SERVER[‘DOCUMENT_ROOT‘]与__DIR__魔术常量)
php开发实战分析(4):php调用封装函数包含文件路径自适应不同目录的解决方案($_SERVER[‘DOCUMENT_ROOT‘]与__DIR__魔术常量)
195 0
php案例:用代码的方式创建目录+文件+写入数据(都由你定)
php案例:用代码的方式创建目录+文件+写入数据(都由你定)
php案例:用代码的方式创建目录+文件+写入数据(都由你定)

热门文章

最新文章