프로그램의 일반적인 아이디어는 재귀 규칙을 사용하여 디렉토리가 차지하는 공간을 계산한 다음 점유된 공간의 값을 텍스트 파일에 쓰는 것입니다. 그런 다음 txt 파일에 액세스하는 한 방법을 알 수 있습니다. 많은 공간을 차지하며, 디스크를 자주 확보하고 읽을 필요가 없으므로 사용자가 파일을 업로드하거나 파일을 삭제할 때마다 통계가 다시 계산됩니다. 물론 통계 결과도 저장할 수 있습니다.
코드 복사 코드는 다음과 같습니다.
function countDirSize($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 get_real_size($size) {
$kb = 1024; // 킬로바이트
$mb = 1024 * $kb; // 메가바이트
$gb = 1024 * $mb; 기가바이트
$tb = 1024 * $gb; // 테라바이트
if($size < $kb) {
return $size." B"
}else if($size < $mb) {
반환($size/$kb,2)." KB"
}else if($size < $gb) {
반환($size/$mb, 2)." MB";
}else if($size < $tb) {
return round($size/$gb,2)." GB"
}else {
return round($size/$tb,2)." TB"
}
}
코드 복사 코드는 다음과 같습니다.
$size_zip=countDirSize( "../zip/")
$size_zip=get_real_size($size_zip); 🎜>
참 간단해요, 하하.
코드 복사 코드는 다음과 같습니다.
/**
* 파일: 사용자 디렉토리 사용 크기 가져오기
* 작성자: heiyeluren
* 생성: 2005-9-19 16:20
* 수정: 2005-9-19 16:41
*/
/ *** 기본 기능 ***/
//디렉터리 크기 계산
function countDirSize(dir)
{
handle = opendir(dir)
while (false!==( FolderOrFile = readdir (핸들)))
{
if(FolderOrFile != "." && FolderOrFile != "..")
{
if(is_dir("dir/FolderOrFile")) {
sizeResult = getDirSize("dir/FolderOrFile");
} else {
sizeResult = filesize("dir/FolderOrFile")
}
}
}
closeir(handle );
return sizeResult;
}
//사용자 파일 크기 저장
function saveDirSize(userDir)
{
userDirSize = countDirSize(userDir)
(!fp = fopen(userDir."/dir_size.txt", "w ")) {
die("파일 열기 실패")
} else {
fwrite(fp, dirSize); 🎜>}
}
//사용자 디렉터리 크기 가져오기
function getDirSize(userDir)
{
user = addlashes(userDir)
sizeFile = userDir."/ dir_size.txt";
if (!fp = fopen(sizeFile, "r") {
return 0;
} else {
dirSize = fread(fp, filesize(sizeFile));
}
return dirSize;
}
/*** 호출 인스턴스 ***/
user = "heiyeluren"
userPath = "./user/".user; //사용자가 파일을 삭제하거나 업로드한 후 디렉터리 크기를 다시 가져오는 경우
if (action == "upload" || action == "delete") {
saveDirSize(userPath)
}
userDirSize = getDirSize(userPath)/1024;
echo "사용자: ".user;
echo "점유 공간:
?>
위에서는 0x00000050 컴퓨터 블루 스크린 코드를 소개했습니다. PHP는 0x00000050 컴퓨터 블루 스크린 코드의 내용을 포함하여 특정 디렉터리 크기의 코드를 얻습니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.