اذهب إلى المحتوى

السؤال

نشر

لدي مجلد يسمى "all_images" وأريد حذف جميع الملفات من هذا المجلد باستخدام PHP. هذه العملية روتينية وتتكرر بإستمرار لدي، وأريد أن أقوم بعمل سكريبت بسيط لتفريغ المجلد بالكامل.

ما هي الدوال التي يجب أن أسعملها للقيام بهذا الأمر؟

Recommended Posts

  • 1
نشر

يمكن الاستعانة بالدوال glob لتوليد قائمة بالملفات المطلوب حذفها، والتابع unlink لحذف كل ملف من قائمة الملفات تلك، يمكن كتابة شيفرة لذلك كالتالي (مع استبدال مسار مجلد all_images):

<?php

$files = glob('path/to/all_images/*'); // جميع الملفات ضمن ذلك الملف
foreach($files as $file){
    unlink($file); // حذف الملف
}

أو يمكن كتابة السابق بطريقة أقصر كالتالي عبر الاستعانة بالتابع array_map للمرور على الملفات بدلًا من حلقة foreach:

<?php

array_map('unlink', array_filter((array) glob("path/to/all_images/*")));

ثم عليك تنفيذ النص البرمجي السابق بحسب الجدولة المطلوبة ضمن مشروعك لحذف الملفات

  • 1
نشر (معدل)
<?php
/**
احذف جميع الملفات في الدليل
*/

$path = '/all_images'

// الطريقة الأولى لحذف الملفات في الدليل
    function clean_dir($path)        {
            if (!is_dir($path))        {
                    if (is_file($path))        {
                            unlink($path);
                    }
                    return;
            }
            $p=opendir($path);
            while ($f=readdir($p))        {
                    if ($f=="." || $f=="..") continue;
                    clean_dir($path.$f);
            }
            rmdir($path);
            return;
    }
    //

   

?>

نستخدم unlink وهي function تعمل على أفراغ المسار المطلوب ، المثال يعرف $path ، فوق ال function ثم يمرر المسار كتغير

تم التعديل في بواسطة Ahmed Abu Hatab
  • 1
نشر

بالإضافة إلى إجابة حسن , تلك الطريقة ستجعلك تحذف جميع الملفات الظاهرة, لحذف الملفات المخفية  يمكنك كتابة نفس الشفرة البرمجية مع إضافة علامة {,.} لتصبح كالتالي 

<?php

$files = glob('path/to/all_images/{,.}*'); // جميع الملفات ضمن ذلك الملف
foreach($files as $file){
    unlink($file); // حذف الملف
}

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...