PDA

View Full Version : سوال: بدست اوردن حجم یک پوشه



nsco_nsco
شنبه 02 دی 1391, 08:26 صبح
سلام دوستان می خوام با پی اچ پی ببینم حجم یک پوشه بر روی هاست چقدره ممنون میشم اگر کدی دارید بگذارید با تشکر مثلا اسم پوشه test1 است با تشکر
:تشویق::قلب:

MMSHFE
شنبه 02 دی 1391, 18:47 عصر
<?php
function dirsize($path) {
$size = 0;
$files = scandir($path);
unset($files[0], $files[1]);
foreach($files as $file) {
if(is_dir($path . '/' . $file)) {
$size += dirsize($path . '/' . $file);
}
else {
$size += filesize($path . '/' . $file);
}
}
return $size;
}

echo number_format(dirsize('test1')) . ' Byte(s)';
?>

موفق باشید.

nsco_nsco
شنبه 02 دی 1391, 18:50 عصر
سلام ممنون دوست من
این فایل را در شاخه جاری بریزم؟ پیش پوشه؟ بازم ممنون

MMSHFE
شنبه 02 دی 1391, 20:21 عصر
بله. کافیه در کنار پوشه بگذارین. حتی اگه کنار پوشه هم نباشه ولی مسیر کامل رو بدین (مثل C:/wamp/www/test1) باز هم کار میکنه.

nsco_nsco
شنبه 02 دی 1391, 21:37 عصر
سلام ممنون از پاسختون میشه بگید چطوری می تونم حجم رو به مگابایت نمایش بدم ؟ ممنون

MMSHFE
شنبه 02 دی 1391, 21:49 عصر
<?php
function dirsize($path) {
$size = 0;
$files = scandir($path);
unset($files[0], $files[1]);
foreach($files as $file) {
if(is_dir($path . '/' . $file)) {
$size += dirsize($path . '/' . $file);
}
else {
$size += filesize($path . '/' . $file);
}
}
return $size;
}

$size = dirsize('test1');
$unit = 'Byte(s)';
if($size > 1024) {
$size /= 1024;
$unit = 'KByte(s)';
}
if($size > 1024) {
$size /= 1024;
$unit = 'MByte(s)';
}
if($size > 1024) {
$size /= 1024;
$unit = 'GByte(s)';
}
echo number_format(round($size, 2)) . ' ' . $unit;
?>

nsco_nsco
شنبه 02 دی 1391, 21:56 عصر
خیلی خیلی ممنون واقعا ممنون حسابی کارم راه افتاد این شالله بتونم جبران کنم