การตรวจสอบขนาดของ Folders ใน PHP
การตรวจสอบขนาดของ Folders หรือ Files ปรกติ Function ใน PHP มักจะมีแต่ filesize ซึ่งเป็น function เอาไว้สำหรับ ตรวจสอบขนาดของไฟล์ ใน PHP แล้วก็เกิดคำถามต่อขึ้นมาอีกว่า แล้ว ถ้าจะเช็คทั้ง Directory ละ จะใช้ filesizeได้หรือไม่? คำตอบคือ ไม่ได้ครับ เราก็ต้อง เปิดเข้าไปใน Directory นั้น โดยใช้คำสั่ง scandir ครับ หลังจากที่เรา scandir ได้ เราจะได้ข้อมูลออกมา โดยเป็น Array แล้วเราจะรู้ได้ไงว่า ไม่มี folders อยุ่ใน Directory นั้นอีก เราต้องก็ต้องตรวบสอบ ว่าเป็น folders หรือเปล่า ด้วย function is_dir และถ้าเป็น Directory จริงละ? ก็ต้องเอาไป scandir อีกครั้งละสิ คำตอบทั้งหมด ตอบด้วย Concept นี้เลยครับ Function แบบ Recursive
<?php
function filesize_r($path){
if(!file_exists($path))
return 0;
if(is_file($path))
return filesize($path);
$ret = 0;
foreach(glob($path."/*") as $fn)
$ret += filesize_r($fn); // Recursive filesize_r();
return $ret;
}
?>
วิีธีใช้งานก็
<?php
$path = "gal"; // Path ของ Directory ที่จะเอาไว้ตรวจสอบ
echo "Folder $path = ".filesize_r($path)." bytes";
?>
เครดิต : http://bytes.com/topic/php/answers/593461-how-check-folder-size

