Удалить файл с прошедшей датой в имени в PHP
У меня есть менеджер мероприятий, который я делаю, это почти сделано, но одна вещь. У меня есть файл, view.php
что посмотреть события. Тем не менее, мне нужно удалить события, которые имеют даты в прошлом.
это плоский файл, поэтому даты хранятся как имена файлов, в папке data
, их имена будут даты. например: "data/Monday, 21 February, 2011.html"
будет на эту дату. У кого-нибудь есть идеи, как удалить события (файлы), которые были в прошлом?
заранее спасибо.
2 ответа
Вы сделали стержень для своей спины с этой схемой именования (обычно также плохо использовать файлы с пробелами в максимально возможной степени), но это не важно.
Что вам нужно сделать, это:
Сканирование целевого каталога с использованием scandir или аналогичного. ( Glob может быть лучшей ставкой в зависимости от содержимого каталога.)
Преобразуйте каждое допустимое (т.е. не "." Или "..") имя файла html в метку времени через strtotime после использования str_replace, чтобы избавиться от части ".html".
отсоедините файл, если он в прошлом.
Или лучше было бы сохранить цифровую метку времени вместо текстового формата. Затем вы можете удалить необходимые файлы с помощью чего-то вроде:
$dir = new DirectoryIterator('/path/to/your/files');
foreach($dir as $file) {
... extract timestamp from each file ...
... if it's less than your cutoff, delete file ...
}
Это избавило бы вас от необходимости каждый раз анализировать часть даты имени файла в значении даты и времени, и вы переходите к простому числовому сравнению.