青剑开源代码之PHP列出指定目录文件大小

时间:13-11-25 栏目:网站开发 作者:admin 评论:0 点击: 1,815 次

<?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 = '<ul>';

	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 .= '<li class="'.$size_dir.'">'.$path.$element.':';
				$out .= '<strong>'.setupSize($size_dir).',Sub dir:'.$sub_num_dir.',file:'.$sub_num_file.'</strong>'.$sub_out.'</li>';
				$size += $size_dir;
				$num_dir +=$sub_num_dir;
				$num_file +=$sub_num_file;
				$num_dir ++;//本文件夹

			} else {
				$size += filesize($path.$element);
				//不显示文件列表
				//echo '<li>'.$path.$element.':'. setupSize(filesize($path.$element)).'</li>';
				$num_file++;
			}

		}	
	}
	$out .= '</ul>';
	return array($size,$num_dir,$num_file,$out);
}
function setupColor($size){

}
//转换单位($filesize是一个int)
function setupSize($fileSize) {
   // $size = sprintf("%u", $fileSize);
	//echo $size.'<br>';
	$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';
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>空间大小统计</title>

<style>
body{ font-size:12px}
li{padding-bottom:5px; margin:1px; border: #FFDBB4 1px solid }
</style>

</head>

<body>
<?php 
echo '<br><strong>可使用空间大小:</strong>';
echo setupSize($full_use_space);

echo '<br><strong>已经使用空间大小:</strong>';
echo setupSize($size);

echo '<br><strong>剩余空间大小:</strong>';
$can_use_size =  $full_use_space - $size;
echo $can_use_size < 0 ? '-':'';
echo setupSize(abs($can_use_size));

echo '<br><strong>总目录数:</strong>';
echo $num_dir;

echo '<br><strong>总文件数:</strong>';
echo $num_file;
echo '<hr>';
echo $out;

//echo '<br>';
//echo number_format($size /1024/1024, 2) , 'M';
?>

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript" >
var total_size = <?php echo $size?>;
$(document).ready(function(){
  // 在这里写你的代码...
  $('li').each(function(){
	  var size = $(this).attr('class');

	  if(size >0){
		   color  = 255 - parseInt( size / total_size * 255);

	  		$(this).css('background-color','rgb('+color+',255,255)');
	  }else{
		  $(this).css('color','#999999');
	  }
  });
 // alert(size);
});
</script>

</body>
</html>

声明: 本文由( admin )原创编译,转载请保留链接: 青剑开源代码之PHP列出指定目录文件大小

青剑开源代码之PHP列出指定目录文件大小:等您坐沙发呢!

发表评论


------====== 本站公告 ======------
联系信息:
lxq73061#qq.com qq:583964941
支付宝:https://me.alipay.com/lxq73061
相关插件程序等信息均会在站内发布,敬请关注。

读者排行