လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> သတ်မှတ်ထားသော directory ၏ disk အရွယ်အစားကိုရရှိရန်လက်တွေ့ကျသောနည်းလမ်းလေးခု

သတ်မှတ်ထားသော directory ၏ disk အရွယ်အစားကိုရရှိရန်လက်တွေ့ကျသောနည်းလမ်းလေးခု

M66 2025-07-26

PHP သည် directory disk ၏စုစုပေါင်းအရွယ်အစားကိုရရှိရန်နည်းလမ်းကိုအကောင်အထည်ဖော်ရန်ဖြစ်သည်

နေ့စဉ်ဝက်ဘ်ဆိုက်ဖွံ့ဖြိုးတိုးတက်မှုတွင်တခါတရံတွင်ကျွန်ုပ်တို့သည်ခွဲတမ်းကန့်သတ်ချက်များ, အရင်းအမြစ်စာရင်းအင်းများသို့မဟုတ်မှတ်တမ်းစောင့်ကြည့်လေ့လာခြင်းကဲ့သို့သောရည်ရွယ်ချက်များ (subdirectories အပါအ 0 င်) directory (subdirectories အပါအ 0 င်) တွင်သိမ်းပိုက်ထားသော disk space ကိုရရှိရန်လိုအပ်သည်။ PHP သည် built-in function များကိုထောက်ပံ့ပေးသည်။

Disk_total_Space ကို အသုံးပြု. disk appaction ကိုရယူပါ

Disk_total_space () သည် disk ၏စုစုပေါင်းစွမ်းရည်ကိုတိုက်ရိုက်ရယူနိုင်ပါသည်။ သို့သော်၎င်းသည် directory အမှန်တကယ်ယူထားသောအရွယ်အစားမဟုတ်ပါ,

 
$directory = "/var/log";
$total_space = disk_total_space($directory);
echo "စုစုပေါင်း disk စွမ်းရည်:$total_space ဒရယ်";

directory file sizes များကိုစုဆောင်းရန် dir () နှင့်ဖိုင်များ () ဖိုင်များ () ဖိုင်များကိုသုံးပါ

ဖိုင်တွဲကို ဖြတ်. ဖိုင်တစ်ခုစီ၏အရွယ်အစားကိုဖတ်ရှုခြင်းအားဖြင့်ဖိုင် တွဲ တစ်ခုစီ၏အရွယ်အစားကိုဖတ်ခြင်းအားဖြင့်သင်သည် directory ကို directory မှသိမ်းပိုက်ထားသည့် disk space ကိုပိုမိုတိကျစွာသိမ်းထားနိုင်သည်။

 
$directory = "/var/log";
$total_size = 0;
if ($dh = opendir($directory)) {
    while (($file = readdir($dh)) !== false) {
        if ($file != "." && $file != "..") {
            $total_size += filesize($directory . "/" . $file);
        }
    }
    closedir($dh);
}
echo "စုစုပေါင်း disk အရွယ်အစား:$total_size ဒရယ်";

အရွယ်အစားကိုရေတွက်ရန် recursoriterolderoliterolderer ကိုသုံးပါ

recursforriterolderolder ္္ဇာိုလ် နှင့် recursiveIloweriter နှင့်အတူ recursiveIloweriter နဲ့အတူဖြည့်ဆည်းပေးနိုင်ပြီး designory directory struction အတွက်သင့်လျော်သော directory directory နှင့် subdirector မှဖိုင်များအားလုံး၏အရွယ်အစားကိုရယူနိုင်သည်။

 
use RecursiveIteratorIterator;
use RecursiveDirectoryIterator;
use SplFileInfo;

$directory = "/var/log";
$total_size = 0;
$iterator = new RecursiveIteratorIterator(
    new RecursiveDirectoryIterator($directory),
    RecursiveIteratorIterator::SELF_FIRST
);

foreach ($iterator as $file) {
    if ($file->isFile()) {
        $total_size += $file->getSize();
    }
}
echo "စုစုပေါင်း disk အရွယ်အစား:$total_size ဒရယ်";

scandir () နှင့် array_sum () ကိုအသုံးပြု။ လျင်မြန်စွာအကောင်အထည်ဖော်မှု ()

scandir () ကို Directory ရှိဖိုင်အမည်များအားလုံးကိုရယူရန်နှင့်စုစုပေါင်းအရွယ်အစားကိုတွက်ချက်ရန် array_map () နှင့် array_sum () () နှင့် array_sum () () နှင့် array_sum () () နှင့် array_sum () () () () () () () () () () () () () () () () () နှင့် array_sum ()) ကိုသုံးနိုင်သည်။ သို့သော်ဤနည်းလမ်းသည်ပြန်လည်ထူထောင်ခြင်းမပြုနိုင်ပါ။ အပြိုင် directory statistics အတွက်သင့်လျော်သည်။

 
$directory = "/var/log";
$files = scandir($directory);
$total_size = array_sum(array_map("filesize", array_filter(
    array_map(function($file) use ($directory) {
        return $directory . '/' . $file;
    }, $files),
    function($file) {
        return is_file($file);
    }
)));
echo "စုစုပေါင်း disk အရွယ်အစား:$total_size ဒရယ်";

စွမ်းဆောင်ရည် optimization အကြံပြုချက်များ

  • အကောင့်နှင့်တိကျမှန်ကန်မှုကိုထည့်သွင်းစဉ်းစားရန် requary iterator နည်းလမ်းကိုအသုံးပြုရန်အကြံပြုသည်။
  • ကြီးမားသောဖိုလ်ဒါများတွင်မထိရောက်သော Glow () function ကိုအသုံးပြုခြင်းကိုရှောင်ကြဉ်ပါ။
  • အကယ်. သင်သည် directory အရွယ်အစားကိုမကြာခဏရရန်လိုအပ်ပါကရလဒ်များကိုဒေတာဘေ့စ်သို့မဟုတ် cache file သို့ထည့်သွင်းစဉ်းစားပါ။

အကျဉ်းချုပ်

PHP သည် directory disk အရွယ်အစားကိုတွက်ချက်ရန်နည်းလမ်းအမျိုးမျိုးကိုပါ 0 င်သည်။ မှန်ကန်သောနည်းလမ်းကိုရွေးချယ်ခြင်းသည်ကွပ်မျက်မှုစွမ်းဆောင်ရည်ကိုတိုးတက်စေရုံသာမကကုဒ်ကိုပိုမိုတိကျပြီးယုံကြည်စိတ်ချရသောပါ 0 င်သည်။ developer များကသူတို့ကိုယ်ပိုင်လိုအပ်ချက်များနှင့်အညီပြောင်းလွယ်ပြင်လွယ်နိုင်သည်။