本文目录一览:
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;
}
?