×

php获取多个文件大小

php获取多个文件大小(php获取文件夹大小)

admin admin 发表于2023-04-05 00:35:08 浏览46 评论0

抢沙发发表评论

本文目录一览:

如何用PHP获取文件夹的大小(包括子文件夹)?

这个函数应该能满足你的要求

function getDirSize($dir)

{

    $size = 0;

    $dirs = [$dir];

    

    while(@$dir=array_shift($dirs)){

        $fd = opendir($dir);

        while(@$file=readdir($fd)){

            if($file=='.'  $file=='..'){

                continue;

            }

            $file = $dir.DIRECTORY_SEPARATOR.$file;

            if(is_dir($file)){

                array_push($dirs, $file);

            }else{

                $size += filesize($file);

            }

        }

        closedir($fd);

    }

    return $size;

}

PHP获取文件夹大小函数用法实例

本文实例讲述了PHP获取文件夹大小函数用法。分享给大家供大家参考。具体如下:

?php

//

获取文件夹大小

function

getDirSize($dir)

{

$handle

=

opendir($dir);

while

(false!==($FolderOrFile

=

readdir($handle)))

{

if($FolderOrFile

!=

"."

$FolderOrFile

!=

"..")

{

if(is_dir("$dir/$FolderOrFile"))

{

$sizeResult

+=

getDirSize("$dir/$FolderOrFile");

}

else

{

$sizeResult

+=

filesize("$dir/$FolderOrFile");

}

}

}

closedir($handle);

return

$sizeResult;

}

//

单位自动转换函数

function

getRealSize($size)

{

$kb

=

1024;

//

Kilobyte

$mb

=

1024

*

$kb;

//

Megabyte

$gb

=

1024

*

$mb;

//

Gigabyte

$tb

=

1024

*

$gb;

//

Terabyte

if($size

$kb)

{

return

$size."

B";

}

else

if($size

$mb)

{

return

round($size/$kb,2)."

KB";

}

else

if($size

$gb)

{

return

round($size/$mb,2)."

MB";

}

else

if($size

$tb)

{

return

round($size/$gb,2)."

GB";

}

else

{

return

round($size/$tb,2)."

TB";

}

}

echo

getRealSize(getDirSize('需要获取大小的目录'));

?

希望本文所述对大家的php程序设计有所帮助。

PHP获取文件大小

$filesize=abs(filesize($filename));

if($filesize5120){ //小于5K

//执行代码

}else{ //大于5K

//执行代码

}

函数filesize()返回的是以字节为单位的文件大小。参数是文件名

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 如何获取文件大小

本函数通过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")

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