本文目录一览:
如何用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")
此函数获取远程文件大小的效果非常好,无论远程文件体积有多大,获取速度完全不受影响。