您的位置:

和php统计文件大小(和php统计文件大小的命令)

本文目录一览:

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”单位并输出

?希望能帮到你,我还在后盾人线下面授培训上课学习呢现在没时间,有不会的可以问我,加油吧✧*。٩(^㉨^*)و✧*。

php如何检测某文件夹里的各个文件夹大小

可以使用scandir()和filesize()函数实现:

$path=".";//.是当前目录,你可以换成自己的目录地址

foreach(scandir($path) as $v){

if(!is_dir($v)){//如果不是目录,就是文件了

$size=filesize($v);

echo "文件:".$v." 大小:".byte_format($size)."br";//单位是kb

}

}

//格式化函数

function byte_format($size, $dec=2){

    $a = array("B", "KB", "MB", "GB", "TB", "PB");

    $pos = 0;

    while ($size = 1024) {

         $size /= 1024;

           $pos++;

    }

    return round($size,$dec)." ".$a[$pos];

 }

PHP怎么获取文件大小

filesize

(PHP 4, PHP 5)

filesize — 取得文件大小

说明

int filesize ( string $filename )

返回文件大小的字节数,如果出错返回 FALSE 并生成一条 E_WARNING 级的错误。

Note: 因为 PHP 的整数类型是有符号的,并且大多数平台使用 32 位整数,filesize() 函数在碰到大于 2GB 的文件时可能会返回非预期的结果。对于 2GB 到 4GB 之间的文件通常可以使用 sprintf("%u", filesize($file)) 来克服此问题。

Note: 此函数的结果会被缓存。参见 clearstatcache() 以获得更多细节。

Tip

自 PHP 5.0.0 起, 此函数也用于某些 URL 包装器。请参见 Supported Protocols and Wrappers以获得支持 stat() 系列函数功能的包装器列表。

Example #1 filesize() 例子

?php

// 输出类似:somefile.txt: 1024 bytes

$filename = 'somefile.txt';

echo $filename . ': ' . filesize($filename) . ' bytes';

?

参见 file_exists()。

php 如何获取文件大小

本函数通过header头信息获取远程文件大小,代码如下:

?php

function getFileSize($url){

$url = parse_url($url);

if($fp = @fsockopen($url['host'],empty($url['port'])?80:$url['port'],$error)){

fputs($fp,"GET ".(empty($url['path'])?'/':$url['path'])." HTTP/1.1\r\n");

fputs($fp,"Host:$url[host]\r\n\r\n");

while(!feof($fp)){

$tmp = fgets($fp);

if(trim($tmp) == ''){

break;

}else if(preg_match('/Content-Length:(.*)/si',$tmp,$arr)){

return trim($arr[1]);

}

}

return null;

}else{

return null;

}

}

?

调用方法很简单,代码如下:

?php

echo getFileSize("/Article/UploadFiles/201001/20100104122349734.gif")

此函数获取远程文件大小的效果非常好,无论远程文件体积有多大,获取速度完全不受影响。

统计文件所占磁盘空间大小的php代码

?php

#循环遍历目录中所有的文件,并统计目录和文件的大小

$dirName="phpMyAdmin";

$dir=opendir($dirName);

#返回一个资源类型

while($fileName=readdir($dir)){

$file=$dirName."/".$fileName;

if($fileName!="."

$fileName!=".."){

if(is_dir($file)){

echo

"font

color='red'".$fileName."===".date("Y-m-d

H:i:s",filectime($file))."==".filetype($file)."==".toSize(dirSize($file))."/fontbr/";

}

else{

echo

"font

color='green'".$fileName."=====".date("Y-m-d

H:i:s",filectime($file))."====".filetype($file)."====".toSize(filesize($file))."/fontbr/";

}

}

}

closedir($dir);

#把文件或目录的大小转化为容易读的方式

function

toSize($size){

$dw;

#指定文件或目录统计的单位方式

if($sizepow(2,30)){

$dw="GB";

$size=round($size/pow(2,30),2);

}

else

if($sizepow(2,20)){

$dw="MB";

$size=round($size/pow(2,20),2);

}

else

if($sizepow(2,10)){

$dw="KB";

$size=round($size/pow(2,10),2);

}

else

{

$dw="bytes";

}

return

$size.$dw;

}

#利用递归的方式统计目录的大小

function

dirSize($dirName){

$dirsize=0;

$dir=opendir($dirName);

while($fileName=readdir($dir)){

$file=$dirName."/".$fileName;

if($fileName!="."

$fileName!=".."){

//一定要进行判断,否则会出现错误的

if(is_dir($file)){

$dirsize+=dirSize($file);

}

else{

$dirsize+=filesize($file);

}

}

}

closedir($dir);

return

$dirsize;

}

?