الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف أعرف المساحة الخالية المتبقية لي عند شركة الاستضافة

بدأه أبو ذر المصري في 11 سبتمبر 2011 · 7 رد · 1,455 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

هل هناك كود أو دالة أعرف من خلالها المساحة الخالية من المساحة المخصصة لي عند شركة الاستضافة

وجزاكم الله خيرا

#2

لمعرفة المساحة الكلية يمكنك استخدام الدالة التالية

function diskTotspace($dir)
{
	$ds = disk_total_space($dir);
	$dsMega = $ds/1024/1024 ;
	return intval($dsMega);
}
//path root dir to the function
echo 'Disk Space : '.diskTotspace('/').' MB <br />';

ولمعرفة المساحة الشاغرة يمكنك استخدام الدالة التالية

function diskFspace($dir)
{
	$dfs = disk_free_space($dir);
	$dfsMega = $dfs/1024/1024 ;
	return intval($dfsMega);
}
//path root dir to the function
echo 'Free Space : '.diskFspace('/').' MB <br />';

ولمعرفة المساحة المشغولة يمكن الطرح ما بين الدالتين

$usedspace = diskTotspace('/') - diskFspace('/') ;
echo 'Used Space : '.$usedspace.' MB <br />';

علما انى حولت البايت لميجا بايت فى كل من الدوال و يمكنك حذف التحويل و استخدام الدوال الاتية لارجاع المساحات بالبايات

//to get your free space
$dfs =  disk_free_space('/');
//to get disk space
$ds = disk_total_space('/');
//to get used space
$usedspace = $ds - $dfs ;
2

Life is not the amount of breaths you take, it's the moments that take your breath away

#3

السلام عليكم ورحمة الله وبركاته

أخي الكريم

جزاك الله خيرا

لكن للأسف لم يفلح معي هذا الكود

حيث أنه أعاد لي مقدار مساحة أكبر من إجمالي المساحة الخاصة بي

أعتقد أن هذا الكود يصلح مع الموقع عندما يكون مستضاف على سيرفر خاص به فقط

أما في حالتي وهي

Shared Hosting

فأعتقد أنه لايصلح

بانتظار ردك أخي الفاضل

لعله يكون عندك حل لمشكلتي

تحياتي

بارك الله فيك

والسلام عليكم ورحمة الله وبركاته

تم تعديل هذه المشاركة بواسطة أبو ذر المصري في 12 سبتمبر 2011 في 22:39

#4

ادخل على لوحة التحكم Cpanel تبع الموقع وستجد كامل التفاصيل عن المساحة والباندويث

M.B.O

Mohamed Bin Othman

إبن المكلا

يابني البشر ماذا فعلتم بالبشر !!

إسـألـنـي

#5

السلام عليكم ورحمة الله وبركاته

جزالك الله خيرا

لكنني أحتاجها في شكل كود

وسبب ذلك

أنني أقوم بإنشاء ملفات كاش بشكل تلقائي للصفحات التي يفتحها الزوار

وأحيانا لايكون هنا مساحة خالية عندي بسبب ملفات الكاش تلك

ويتسبب ذلك في أن تكون آخر صفحة تم إنشاء ملف كاش لها تكون مشوهة بسبب عدم وجود مساحة كافية لها عند إنشائها

ولذلك أريد كودا يمنع إنشاء ملف الكاش عندما تكون المساحة الخالية أقل من واحد ميجا مثلا

أرجو أن أجد الحل عندك أخي الفاضل

والسلام عليكم ورحمة الله وبركاته

#6

أخي الكريم

أنت تحتاج لحساب المساحة الخالية في استضافتك والتي هي جزء من المساحة على القرص الصلب لمزود الاستضافة بالنسبة لك

الكود السابق للأخ الكريم فؤاد يقوم بحساب المساحة للقرص الصلب

واقتراحي هو حساب مساحة المجلد الذي يخصك ثم طرح هذه المساحة مما هو مخصص لك

وهذا هو كود حساب مساحة مجلد معين ، ومعرفة عدد الملفات والمجلدات الموجودة به

<?php
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";
    }

}  
//لاستخدام الدالة لحساب حجم المجلد الذي يحتوي على الملف
$path="./";
$ar=getDirectorySize($path);

echo "<h4>Details for the path : $path</h4>";
echo "Total size : ".sizeFormat($ar['size'])."<br>";
echo "No. of files : ".$ar['count']."<br>";
echo "No. of directories : ".$ar['dircount']."<br>";  
?>

يحتوي الكود السابق على دالة للتحويل إلى كيلوبايت وميجا بايت وجيجا بايت أيضا

وفكرة الكود سهلة جدا وهي حساب حجم كل ملف داخل المجلد وهو بالتالي حجم المجلد

كما يقوم بعدّ الملفات وكذلك عدّ المجلدات

ولا ينقصني سوى دعاؤكم

التغير هو القانون الدائم للحياة.ودوام الحال من المحال

فلماذا لا نتغير بإرادتنا إلى ما نريد؟ قبل أن تغيرنا الحياة مجبرين إلى ما لا نريد؟

موقعي

#7

إن لم يساعد كاتب الموضوع نفسه بإجابةٍ عن الاستفسارات الموجودة باللون الأحمر تحت بعض ردوده(والتي أولها كان بذات تاريخ فتح الموضوع), فقد لا يفيد معه أي script يقدم إليه في حساب المساحة المستخدمة بدقة,

فحساب المساحة مع cpanel وغيرها مثلا, لا يتوقف على حساب حجم الملفات الموجودة لديه, بل يضاف عليها حجم قواعد البيانات, فأي ملف تحت ملكية الـ User الخاص به على النظام يحسب حجمه من ضمن المساحة الخاصة به, خصوصاً في حال كان هناك PHP acceleration على السيرفر فجميع الملفات المتولدة عن الموقع الخاص به و الموجودة في كاش الـ Accelerator سيحسب حجمها من ضمن مساحته, جميع الملفات الموجودة في tmp النظام والمتولدة عن الـ sessions المفتوحة على الموقع الخاص به ستكون تحت ملكية الـ User الخاص به فحجمها محتسب ضمن مساحته(صحيح أنها ملفات مؤقتة ولكن هذا لا يعني أنها قد تكون معدومة التواجد بل هي دائمة التواجد ولكن حجمها متغير وقد سببت في كثير من الأحيان الوصول إلى over quota عند كثير من اصحاب الاستضافات)

فمسألة حساب استهلاك المساحة الخاصة بك بدقة قد لا يكون بالسهولة التي تتوقعها!

على كل حال إن كنت تعمل على Cpanel فهذا الـ Class سيفيدك في الوصول إلى الكثير من المعلومات المفيدة حول استضافتك

إن كنت تعمل مع غيرها ابحث عن أي api تقدمه لوحة التحكم للحصول على هذه المعلومة أو اذكر اسمها هنا حتى نحاول معرفة الخوارزمية المناسبة لحساب المساحة المستهلكة

بتوفيق الله...

تم تعديل هذه المشاركة بواسطة MoHaMMaD Pro في 14 سبتمبر 2011 في 03:07

1

Everything will be fine when we TALK LESS, DO MORE


#8

+1 للأخ محمد برو ..

ربي يوفقك ..

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…