Как с помощью PHP удалить директорию со старой датой?
У меня есть папки с файлами, которые называются DIR001, DIR002 и так далее.
В каждой лежит файл DATA.TXT, где внутри файла есть строка 01.02.2023.
Для пользователя формируется страница на основе файлов из конкретной папки. Мне нужно, чтобы данная страница открыла файл DATA.TXT. Сверила дату. Если сегодня 04.02.2023, а в файле 01.02.2023, то данная папка с файлами удаляется. Если сегодня 30.01.2023, а в файле 01.02.2023, то ничего не происходит.
Хочу как-то упразднить процесс удаления старых данных, а то мне приходится вручную контролировать и более 700 папок держать в актуальном состоянии стало просто не реально.
Шикарный совет. Сразу виден опыт и большой багаж знаний комментатора. В понедельник свой вопрос выложу на фриланс. Там за 500 рублей молодёжь такие коды пишет, любо-дорого. Профессионалы нервно стоят в сторонке. Да, я не умею с нуля писать коды и этим меня стыдить поздно. Понимание своих недостатков - половина успеха.
А остановка на половине успеха - провал.
Прежде чем выкладывать на фриланс задачу, которую, скрепя сердце, наколхозят за деньги, почитайте хотя бы первые пару страничек, нагугленных по моему ответу. Ничего особенно сложного там нет, и новых проблем, в отличие от того, что вам подложат на фрилансе, от него не будет.
Николай Ростов, cron - штатный инструмент, выдержавший десятилетия работы на серверах любого уровня.
Если до сих пор с ним не знаком - разберись, а не отмахивайся. Для будущего.
В следующий раз тот же Битрикс тебе заявит, что его агенты нужно перевести на cron (да, даже этот динозавр знает это слово!) - опять будешь говорить "не могу, у меня лапки"?
Adamos, у меня свой самописный сайт для хранения документов и обмена ими между собой. Мне супер сложный проект не нужен. Логика простая, в папку загружаются файлы, где информация действительна только до определённого дня. Затем она никому не нужна, так как уже началась работа с новыми сведениями. Пыха достаточно. Если кто-то случайно попадает в старый набор документов, они должны быть уничтожены. Мне Битрикс и другие CMS без надобности. Основная мощность (фильтры, формулы) у каждого пользователя в Access для безопасности персональных данных.
Adamos, cron будет перебирать все папки. Это нагрузка. В период с 10:00 до 14:00 сайт с так работает на 100% мощности. Перебои запрещены. Средний прирост новых папок +30 в день. При этом выходят из оборота 20 в неделю и неравномерно. Какая-то уже завтра не нужна, а какая-то действительна до конца года. К концу этого года их объём увеличится до 3500 штук. При круглосуточном режиме работы нет возможности запускать крон для перебора папок. Поштучный вариант мне кажется самым оптимальным с точки зрения нагрузки.
Access наше всё :) Особенно в бухгалтерии и финансах. Среди нас нет сумасшедших готовых выложить информацию в облако или в интернет. А вот подборки документов из публичных источников, это пожалуйста. Даже если сайт взломают, ничего никто не узнает, так как окончательные решения принимаются переговорами в офлайне.
Николай Ростов, судя по восторгу от Акцесса, с Линуксом вы просто не знакомы и не представляете, как смехотворна та "нагрузка", которую вы придумали в оправдание нежелания развиваться.
Примерно так же, как использование офисных приблуд - и мнимая "безопасность", которая на практике оборачивается непременным бардаком, полным отсутствием ролей пользователей и невозможностью найти, кто нагадил в то, что считалось данными, а оказалось - таблицей Ёкселя или файлом Акцесса.
Adamos, Мы только от бумажных карточек ушли. Уборщица каждый день две телеги вывозила. Аксэсс и эксель оказались фантастическим прорывом. А бардак у нас всегда был. Никто с ним не борется и не собирается :) Компания приносит прибыль, растёт и все довольны.
Николай Ростов, понимаю. Заранее могу порадоваться за вас, какой фантастикой будет открытие CRM :)
До того времени - постарайтесь хранить информацию так, чтобы ее можно было прочитать не только Офисом.
Николай Ростов, find создаст не больше нагрузки, чем php-скрипт, а даже меньше. Ведь и тому, и другому придётся прочитать список файлов с диска и затем отправить ему какое-то количество операций удаления. Две основных разницы в том, что, во-первых, find написан на C, а во-вторых, он написан очень эффективно и заточен как раз для подобных задач.
И у файла есть своя собственная дата изменения (mtime), которую можно использовать, не читая какие-то спецфайлы (что ещё и гораздо медленнее).
Совет отказаться от плохого механизма и внедрить хороший - он очень правильный и полезный.
Николай Ростов, ну-ну, давайте без детских подначек. Мы как раз хорошо представляем, насколько громоздким и ненадежным получится то, что вы задумали, по сравнению с, можно сказать, стандартным решением на кроне.
Николай Ростов, я-то знаю, и даже писал более сложные обходы дерева каталогов, чем в вопросе. Но я делал это именно в тех случаях, когда это было необходимо для конкретной нетривиальной задачи, а не когда мне было лень разобраться в нормальном решении простой.