本文實例講述了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程序設計有所幫助。
B. 關於使用php生成目錄的問題。求高手給出函數代碼
寫的有點多,但是應該是實現了,a文件夾的數量是沒有控制的
$path1=__DIR__;//一級目錄所在路徑
$dir_arr1=scandir($path1);//一級目錄所在路徑的所有文件和文件夾
$count1=getDirCount($dir_arr1,$path1);//一級目錄個數
$x=0;//1級目錄索引
if($count1==0){
mkdir('a0',0777);
}
if($count1>1){
$x=$count1-1;
}
$path2=$path1."/a".$x;//二級目錄所在路徑
$dir_arr2=scandir($path2);//二級目錄所在路徑的所有文件和文件夾
$count2=getDirCount($dir_arr2,$path2);//二級目錄個數
$y=0;//二級目錄索引
if($count2==0){
mkdir($path2.'/b0',0777);
}
if($count2>1){
$y=$count2-1;
}
$path3=$path1."/a".$x."/b".$y;//三級目錄所在路徑
$dir_arr3=scandir($path3);//三級目錄所在路徑的所有文件和文件夾
$count3=getDirCount($dir_arr3,$path3);//三級目錄個數
$z=0;//三級目錄索引
if($count3==0){
mkdir($path3.'/c0',0777);
}
if($count3>1){
$z=$count3-1;
}
$path4=$path1."/a".$x."/b".$y."/c".$z;
$dir_arr4=scandir($path4);//三級目錄所在路徑的所有文件和文件夾
print_r($dir_arr4);
$count4=getFileCount($dir_arr4,$path4);//獲取文件數量
//當c文件夾中的文件數量大於等於5個則需要創建下一個c文件夾
if($count4>=5){
//判斷c文件夾是不是已經有五個了
if($z>=4){
//如果c文件夾5個了,就需要創建下一個b文件夾
if($y>=4){
//如果b文件夾5個了,就創建下一個a文件夾和b0,c0
$path4=$path1.'/a'.($x+1).'/b0/c0';
mkdir($path4,0777,true);
}else{
//如果b文件夾不到5個就創建下一個b,和c0
$path4=$path2.'/b'.($y+1).'/c0';
mkdir($path4,0777,true);
}
}else{
//如果c文件夾還不到五個就創建c
$path4=$path3.'/c'.($z+1);
mkdir($path4,0777);
}
}
//往c文件夾里寫數據
file_put_contents($path4.'/'.time().'.txt','123');
functiongetDirCount($arr,$path){
$dir_count=0;
foreach($arras$val){
if($val!='.'&&$val!='..'&&is_dir($path."/".$val)){
$dir_count+=1;
}
}
return$dir_count;
}
functiongetFileCount($arr,$path){
$file_count=0;
foreach($arras$val){
if($val!='.'&&$val!='..'&&is_file($path."/".$val)){
$file_count+=1;
}
}
return$file_count;
}
C. PHP獲取文件當前目錄問題
你應該是獲取「E:\常用軟體\顯卡驅動\」吧,下面的代碼可以:
<?php
$path="E:\\常用軟體\\顯卡驅動\\ddc.inc";
$dir=preg_replace("/[^\\\\]*$/","",$path);
echo $dir;
?>
獲取「顯示驅動」也是可以做程序的,但是那有什麼實際意義,最後一個文件夾嗎,代碼如下:
<?php
$path="E:\\常用軟體\\顯卡驅動\\ddc.inc";
$dir=preg_replace("/\\\\[^\\\\]*$/","",$path);
$dir=preg_replace("/^.*\\\\/","",$dir);
echo $dir;
?>
D. php中的幾個判斷文件和目錄的函數 is
is_file("mydoc.txt")判斷文件名是否是合法的文件,目錄不行;
is_dir(" "),判斷目錄是否存在,文件名不行。mkdir(""),產生一個新的目錄。
file_exists(),檢查文件和目錄是否存在。目錄或文件名都行。
E. php如何獲取目錄下所有文件名
<?php
functionfilesinfo($path){
//檢查路徑合法性
if(!is_dir($path))returnfalse;//不合法
//用系統函數獲得文件名數組
$files=scandir($path);
//定義靜態變數記錄調用次數
static$count=-1;
//遍歷數組
foreach($filesas$file){
//如果是'.'或'..'文件,跳過當次循環
if($file=='.'||$file=='..')continue;
//將文件信息存入數組
$arr[]=iconv('gbk','utf-8',$file);
}
//每次調用,次數加1
$count+=1;
//根據調用次數返回第N個結果
return$arr[$count];
}
//第1次調用,./替換成你自己的目錄路徑
echofilesinfo('./').'</br>';
//第2次調用
echofilesinfo('./').'</br>';
//第3次調用
echofilesinfo('./').'</br>';
?>
F. 在php可以用那個函數打開指定目錄
使用scandir()掃描目錄下的所有文件
使用fopen()打開一個文件
使用file_get_contents()獲取文件里的內容
G. PHP怎麼獲取當前目錄長度
替你糾結啊...
只要這樣就可以了:
require dirname(dirname(__FILE__)).'/init.inc.php'
文件夾其實是特殊的文件。取得文件夾的父文件夾,其實只要把文件夾當文件看待,就可以理解了。
H. 關於php中查詢資料庫中的目錄表的遞歸函數
I. 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程序設計有所幫助。