本文目錄一覽:
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;
}
?
原創文章,作者:簡單一點,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/130139.html