Rumah  >  Soal Jawab  >  teks badan

Padamkan fail yang lebih lama daripada satu bulan yyyy-mm-dd.pdf

Saya ingin memadamkan fail pdf yang lebih lama daripada satu bulan berdasarkan nama fail mereka. Contohnya, jika (hari ini - 1 bulan) ialah "2022-06-01.pdf", maka saya ingin memadamkan fail seperti "2022-04-13.pdf" dan "2021-01-22.pdf". Saya tidak mahu mendasarkan kriteria pemilihan saya pada tarikh pengubahsuaian atau penciptaan sebenar.

Contoh (sementara/)

2019-02-01.pdf  
2020-07-01.pdf  
2021-03-10.pdf  
2021-08-04.pdf  
2022-03-30.pdf
2019-02-27.pdf  
2020-07-08.pdf  
2021-03-17.pdf  
2021-08-11.pdf  
2022-04-06.pdf

HTML

oldFiles(); purgeOLD();

JS

function oldFiles() { // this is ok
yesterday = new Date();
yesterday.setDate(yesterday.getDate() - 30);

actualYear = yesterday.getFullYear();
actualMonth = yesterday.getMonth() + 1;
actualDay = yesterday.getDate();

if (actualMonth < "10") {actualMonth = "0" + actualMonth;}
if (actualDay < "10") {actualDay = "0" + actualDay;}

backtrack = actualYear +'-' +actualMonth +'-' +actualDay;
}

function purgeOLD () { // is this where the problem is ?
var new_data = backtrack; var data; 
$.ajax({url: 'test.php', type: 'post', async: false, data: {user: new_data}});
}

PHP "test.php"

<?php // or is this ?
$result = $_GET['user'];
$rdm = $result .'.pdf';
$glob = glob("temp/2???-??-??.pdf");

foreach($glob as $file) {
if ($file < $rdm) {
{unlink('/home/example/public_html/temp/' .$file ."'"))}    
}
}

?>

P粉158473780P粉158473780211 hari yang lalu395

membalas semua(1)saya akan balas

  • P粉147747637

    P粉1477476372024-02-26 19:51:10

    Saya akan melakukan bahagian pelayan sepenuhnya ini.

    1. Bina instanceDateTime untuk
    2. "1 bulan yang lalu"
    3. Buat nama fail daripada contoh ini
    4. Lelaran pada fail dan bandingkan nama asas (abaikan sebarang awalan direktori)
    5. Jika nama fail mewakili tarikh sebelum "1 bulan yang lalu"
    6. sila padamkannya
    🎜
    $lastMonth = new DateTimeImmutable('-1 month');
    $cutoff = sprintf('%s.pdf', $lastMonth->format('Y-m-d'));
    
    $glob = glob("temp/2???-??-??.pdf");
    
    foreach($glob as $file) {
        if (basename($file) < $cutoff) {
            unlink($file);
        }
    }
    

    balas
    0
  • Batalbalas