بعضی وقت ها نیاز است برای خالی کردن فضای هاست بر روی سرور ، فایل های قدیمی یا یک سری فایل های خاص یا همه ی فایل های یک دایرکتری را حذف کنید. یعنی بدون اینکه اسم فایل های داخل فولدر را بدانید حذف کنید . این نوع قابلیت برای این موقعیت ها نیاز است :
- حذف تمام فایل ها برای خالی کردن فضای هاست
- حذف فایل های قدیمی داخل فولدر که قبلا در یک زمان خاص از آنها استفاده شده بود.
- حذف یک سری فایل های یک فولدر و نگه داشتن بعضی فایل ها با پسوند خاص
- و غیره …
در این مقاله کوتاه ، قصد داریم یک اسکریپت برای حذف فایل توسط php بنویسیم.نیازی به دانستن اسم فایل ها نیست . برای حذف همه فایل های دایرکتری از تابع glob()
و تابع unlink در php استفاده می کنیم .
- تابع glob() برای گرفتن اسم فایل ها و دایرکتری ها بر اساس یک الگوی خاص استفاده می شود که خروجی آن به صورت آرایه ای است .
- تابع unlink() برای حذف فایل استفاده می شود
کد php زیر برای هر سه موقعیت بالا نوشته شده است .
حذف همه فایل های فولدر
این کد همه فایل های یک فولدر را حذف می کند.
1 2 3 4 5 |
$files = glob('my_folder/*'); //get all file names foreach($files as $file){ if(is_file($file)) unlink($file); //delete file } |
حذف فایل هایی با پسوند خاص
کد php زیر فقط فایل هایی با پسوند خاص را حذف می کند.
1 2 3 4 5 |
$files = glob('my_folder/*.jpg'); //get all file names foreach($files as $file){ if(is_file($file)) unlink($file); //delete file } |
حذف فایل های قدیمی از فولدر
کد زیر فقط فایل هایی که قبل از زمان خاصی ویرایش یا اصلاح شده اند را حذف می کند.
1 2 3 4 5 6 7 8 |
$files = glob('my_folder/*'); //get all file names foreach($files as $file){ $lastModifiedTime = filemtime($file); $currentTime = time(); $timeDiff = abs($currentTime - $lastModifiedTime)/(60*60); //in hours if(is_file($file) && $timeDiff > 10) //check if file is modified before 10 hours unlink($file); //delete file } |
امیدوارم مقاله ” حذف فایل توسط php” برای شما مفید بوده باشد .
موفق باشید .
سلام مهندس شفیعی موقع حذف یک فایل خطای resource temporarily unavailable دریافت میکنم علت چیه ؟
سلام مهندس شفیعی عزیز مشکلم حل شد نمونشو پیدا کردم تو stack
سلام مهندس شفیعی خیلی خوب بود
اگر بخواهیم به جای اون ستاره که همه فایل ها رو حذف میکنه اسم فایلی رو از دیتابیس بخونیم کار میکنه ؟
چون من echo که میکنم زیرش خط قرمز می کشه ادیتور
چه با تگ باز و بسته php و چه بدون تگ php کار نمیکنه
چنین کاری شدنی هست ؟
سلام میشه یک مثال از مسیر دهی واقعی قرار بدهید
مثلا اسم سرور من
Iran
هست و داخل مسیر
public_html/wp-content/cache
می خواهم همه محتوا ها حذف بشه
این رو با کد کامل قرار بدین برای دوستان فک کنم تاثیر گذار تره
با تشکر
سلام. مسیر دهی واعضی بصورت
/home/USERNAME/public_html/wp-content/cache هست