Странно, когда я пытался гуглить этот вопрос, вводя запросы, похожие на этот вопрос, ничего полезного не выскакивало, даже близко.
Сейчас я не ищите решение, где вы сканируете или открываете каталог и читаете его содержимое файл за файлом. Для тех, кто ищет такой ненадежный цикл, проверьте эти функции: scandir(...)
загрузить все сразу, а затем зациклить его, и opendir(...)
, readdir(...)
, stat(...)['mtime']
сделать это файл за файлом и, возможно, установить какой-то лимит на то, сколько сделано, и сделать его хотя бы немного безопаснее …
Я хотел бы знать, есть ли в PHP что-то, что может каким-то простым способом проверить / протестировать, содержит ли папка / каталог файл старше, чем [sometime], или даже сколько таких файлов существует без какого-либо «ручной» проход?
PS: я видел некоторые shell_exec
но это не похоже на кросс-ОС …
Очевидно, что для этого нет встроенной функции, поскольку это слишком специфично. Вы должны будете сделать это сами так или иначе, точно так же, как те функции оболочки, которые вы так любите делать внутри.
Напишите функцию, которая делает это, чтобы вы могли использовать ее там, где это необходимо. И, естественно, PHP предлагает множество функций, которые делают все это меньше и потенциально быстрее. Вы можете, например, сделать это:
function folder_has_older_file($folder, $time)
{
return count(array_filter(array_map('filemtime', glob("$folder/*")), function ($a) use ($time) { return $a < $time; })) > 0;
}
Ты можешь использовать filectime(path)
или же filemtime(path)
функция для проверки времени создания из файла или папки. Он вернется unixtime
, то вы можете сравнить с когда-нибудь