|
วันนี้จะมาแนะนำ php script สำหรับผู้ใช้บริการ hosting แน๊กซ่าที่จะสามารถนำไปตรวจสอบได้ว่า ใน path ที่เราต้องการมี folder และ file ชื่ออะไรบ้าง และสามารถที่จะนำไปพัฒนาต่อยอด เพื่อเช็คขนาดของ directory ต่าง ๆ เพื่อคำนวณพื้นที่การใช้งานได้อีกด้วยครับ เราลองมาดูตัวอย่าง code กันนะครับ สำหรับ hosting ที่ใช้ทดสอบเป็น hosting แบบ unix ครับ
<?
if ($handle = opendir('กำหนด path ตรงนี้ครับ')) {
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != "..") {
if (isdir($file)){// ตรงนี้ใช้ตรวจสอบว่าเป็น directory เพื่อจะได้ใส่ icon ให้สวยงาม
echo $file; // เอาชื่อมาใช้ได้เลยครับ หากต้องการที่จะใส่ icon ก็ใส่ได้เลยครับ
}else{// กรณีที่เป็นไฟล์
echo $file;
}
}
}
}
?>
แต่หากต้องการวัดขนาดของ directory ให้ใส่ function เหล่านี้เข้าไปก่อนครับ
function getDirectorySize($path)
{
$totalsize = 0;
$totalcount = 0;
$dircount = 0;
if ($handle = opendir ($path))
{
while (false !== ($file = readdir($handle)))
{
$nextpath = $path . '/' . $file;
if ($file != '.' && $file != '..' && !is_link ($nextpath))
{
if (is_dir ($nextpath))
{
$dircount++;
$result = getDirectorySize($nextpath);
$totalsize += $result['size'];
$totalcount += $result['count'];
$dircount += $result['dircount'];
}
elseif (is_file ($nextpath))
{
$totalsize += filesize ($nextpath);
$totalcount++;
}
}
}
}
closedir ($handle);
$total['size'] = $totalsize;
$total['count'] = $totalcount;
$total['dircount'] = $dircount;
return $total;
}
function sizeFormat($size)
{
if($size<1024)
{
return $size." bytes";
}
else if($size<(1024*1024))
{
$size=round($size/1024,1);
return $size." KB";
}
else if($size<(1024*1024*1024))
{
$size=round($size/(1024*1024),1);
return $size." MB";
}
else
{
$size=round($size/(1024*1024*1024),1);
return $size." GB";
}
}
จากนั้นตรงที่จะ echo $file ก็เปลี่ยนเป็น
$total = getDirectorySize($file);
echo $file." มีขนาด ".$total['size']." มีจำนวนไฟล์ทั้งหมด ".$total['count']." มีจำนวน directory ทั้งหมด ".$total['dircount'];
บทความโดย ณัฐธัญ เตชะกาญจนวงศ์
Webdesign Article : |