ホームページ >php教程 >php手册 >特定のディレクトリのサイズを取得するPHPコード

特定のディレクトリのサイズを取得するPHPコード

WBOY
WBOYオリジナル
2016-06-13 12:27:17857ブラウズ

このプログラムの一般的な考え方は、再帰的なルールを使用してディレクトリが占めるスペースの量を計算し、その占有スペースの値をテキスト ファイルに書き込むことです。txt ファイルにアクセスすれば、その方法がわかります。多くのスペースが占有されるため、頻繁にディスクを取得して読み取る必要がなく、ユーザーがファイルをアップロードまたは削除するたびに、統計結果が再計算されます。

コードをコピーします コードは次のとおりです:


function countDirSize($dir)
{
$handle = opendir($dir);
while (false!==($FolderOrFile = readdir( $handle)))
{
if($FolderOrFile != "." && $FolderOrFile != "..")
{
if(is_dir("$dir/$FolderOrFile") ) {
$sizeResult = getDirSize("$dir/$FolderOrFile")
}; {
$sizeResult = filesize("$dir/$FolderOrFile");
}
}
}
closedir($handle)
return $sizeResult;

バイトを通常の K および M 関数に変換する関数:

コードをコピー コードは次のとおりです:

function get_real_size($size) {

$kb = 1024; // キロバイト
$mb = 1024 * $kb; // メガバイト
$gb = 1024 * $mb; ; // ギガバイト
$tb = 1024 * $gb; // テラバイト

if($size < $kb) {
return $size."
}else if($size < $mb) {
returnround($size/$kb,2) ." KB";
}else if($size < $gb) {
returnround( $size/$mb,2)." MB";
}else if($size <$tb) {
return Round($size/$gb,2)." GB"; }else {
returnround($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(handle)))
{
if(FolderOrFile != "." && FolderOrFile != "..")
{
if( is_dir(" dir/FolderOrFile")) {
sizeResult = getDirSize("dir/FolderOrFile");
} else {
sizeResult = filesize("dir/FolderOrFile") }
}
closedir(handle);
return sizeResult;

// ユーザー ファイル サイズの保存
function saveDirSize(userDir)
{
userDirSize = countDirSize(userDir);
if (!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
}
/*** インスタンスの呼び出し ***/
user = "heiyeluren"; >userPath = ". /user/".user;

//ユーザーがファイルの削除またはアップロードの操作を実行した場合、ディレクトリのサイズを再取得します
if (action == "upload" || action == "削除") {
saveDirSize(userPath);
}

userDirSize = getDirSize(userPath)/1024;
echo "ユーザー: ".user
占有スペース: ".userDirSize ;
?>


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。