در خواست یک کد php

milad_jam

New Member
سلا م
من یک دایرکتوری در سایت دارم به نام files در اونجا فایلهایی آپلود میکنم.میخوام هر فایلی که اونجا آپلود شد بعد از مدتی مثلا 3 ساعت پاک شود.
ممنون
 

ziXet

مدیر انجمن PHP/MYSQL
سلا م
من یک دایرکتوری در سایت دارم به نام files در اونجا فایلهایی آپلود میکنم.میخوام هر فایلی که اونجا آپلود شد بعد از مدتی مثلا 3 ساعت پاک شود.
ممنون
خب اینم کاری نداره!

اگه بلدی بنویسی من توضیحش رو تو این تاپیک گذاشتم!
فقط شما باید به ازای هر فایلی که آپلود میشه باید یه رکورد زمان دار تو دیتابیس ثبت کنی! بقیه روش مثل همونیه که تو تاپیک قبل توضیح دادم.
 

milad_jam

New Member
نه من بلد نیستم اگه میشه برام توضیح بدید.
راستی منظورتون از رکورد زمان دار چیه؟
شاید توی یک ساعت 100 تا فایل توی این پوشه آپلود شه یعنی باید برای هر کدام عملی انجام بدهم؟
 

hussein1363

New Member
stat() از این تابع هم می تونی کمک بگیری اگه نخوای از دیتا بیس استفاده کنی ولی به نظر منم بهتره از دیتابیس استفاده کنی
 

hussein1363

New Member
این تابع کل فایلها و ساب فولدرها رو با تاریخی که شما تعیین می کنید مقایسه و چاپ می کنه
البته در خط آخر مثالی از کاربرد این تابع نوشتم که فایل که ظرف یک روز اخیر ایجاد کپی یا ذخیره شده اند را چاپ کن( date("d")-1 یعنی یک روز قبل)
اگه شما می خواید فایل ها رو پاک کنه باید به جایه
PHP:
 echo $fulldir.'=>'.$last_modified_str;
از
PHP:
       unlink($fulldir);
استفاده کنید
PHP:
<?
function directory_tree($address,$comparedate){ 
@$dir = opendir($address); 
 if(!$dir){ return 0; } 
       while($entry = readdir($dir)){ 
               if(is_dir("$address/$entry") && ($entry != ".." && $entry != ".")){                             
                       directory_tree("$address/$entry",$comparedate);
               } 
                else   {
                 if($entry != ".." && $entry != ".") {
 
                   $fulldir=$address.'/'.$entry;
                   $last_modified = filemtime($fulldir);
                   $last_modified_str= date("Y-m-d h:i:s", $last_modified);
                      if($comparedate < $last_modified)  {
                         echo $fulldir.'=>'.$last_modified_str;
                         echo "<br>";
       }
                }
           }
     } 
}
$comparedate=mktime(0, 0, 0, date("m"),   date("d")-1,   date("Y"));
directory_tree("./",$comparedate);
?>
امیدوارم که به دردتون بخوره
 
آخرین ویرایش:

ziXet

مدیر انجمن PHP/MYSQL
نه من بلد نیستم اگه میشه برام توضیح بدید.
راستی منظورتون از رکورد زمان دار چیه؟
شاید توی یک ساعت 100 تا فایل توی این پوشه آپلود شه یعنی باید برای هر کدام عملی انجام بدهم؟
توضیح دادن از اول آسون نیست!
منظورم از رکورد زمان دار اینه که یه فیلد داشته باشه به اسم مثلا date که تو اون تابع ()time رو بریز بعد هم از روش اون تاپیک استفاده کن.

من اگه جواب سوال رو بلد باشم جواب میدم نیازی به PM نیست دوست عزیز.


موفق باشید
 

milad_jam

New Member
ببخشیدShahkey.com عزیز.من کمی عجله داشتم مجبور شدم پخ بزنم.از آقا حسین هم ممنون به خاطر کدی که ارائه دادن.
از اون جایی که من php رو نمیدانم چند سوال داشتم راجب کد:
این که من چه جوری کد رو برای پاک کردن فایل ها بعداز 5 ساعت تغییر بدم؟
در کدام قسمت آدرس دایرکتوری را بدهم؟
آیا این کد را باید در سرور آپلود کنم و با cron job در فاصله های زمانی اجرا کنم؟یا این که یک بار اجرا کنم بس است؟
میدونم باعث زحمت و صرف وقتتان هستم ولی لطفا به من کمک کنید.
 

ziXet

مدیر انجمن PHP/MYSQL
ببخشیدshahkey.com عزیز.من کمی عجله داشتم مجبور شدم پخ بزنم.از آقا حسین هم ممنون به خاطر کدی که ارائه دادن.
از اون جایی که من php رو نمیدانم چند سوال داشتم راجب کد:
این که من چه جوری کد رو برای پاک کردن فایل ها بعداز 5 ساعت تغییر بدم؟
در کدام قسمت آدرس دایرکتوری را بدهم؟
آیا این کد را باید در سرور آپلود کنم و با cron job در فاصله های زمانی اجرا کنم؟یا این که یک بار اجرا کنم بس است؟
میدونم باعث زحمت و صرف وقتتان هستم ولی لطفا به من کمک کنید.
شما با دیتابیس کار کردی یا نه؟
اگه آره که روشش رو گفتم اگه نه هم نمیشه تو دو سه تا خط توضیح داد!
یا میتونی بری یاد بگیری یا بدی یکی واست بنویسه!

اگه یه چیز کوچیک بود میشد سریع نوشت ولی اینی که شما میخواهید کار 5 یا 6 دقیقه نیست
 

جدیدترین ارسال ها

بالا