производительность — как проверить / проверить, если каталог / папка содержит старый файл / файл старше, чем?

Странно, когда я пытался гуглить этот вопрос, вводя запросы, похожие на этот вопрос, ничего полезного не выскакивало, даже близко.

Сейчас я не ищите решение, где вы сканируете или открываете каталог и читаете его содержимое файл за файлом. Для тех, кто ищет такой ненадежный цикл, проверьте эти функции: scandir(...) загрузить все сразу, а затем зациклить его, и opendir(...), readdir(...), stat(...)['mtime'] сделать это файл за файлом и, возможно, установить какой-то лимит на то, сколько сделано, и сделать его хотя бы немного безопаснее …

Я хотел бы знать, есть ли в PHP что-то, что может каким-то простым способом проверить / протестировать, содержит ли папка / каталог файл старше, чем [sometime], или даже сколько таких файлов существует без какого-либо «ручной» проход?

PS: я видел некоторые shell_execно это не похоже на кросс-ОС …

3

Решение

Очевидно, что для этого нет встроенной функции, поскольку это слишком специфично. Вы должны будете сделать это сами так или иначе, точно так же, как те функции оболочки, которые вы так любите делать внутри.

Напишите функцию, которая делает это, чтобы вы могли использовать ее там, где это необходимо. И, естественно, 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;
}
1

Другие решения

Ты можешь использовать filectime(path) или же filemtime(path) функция для проверки времени создания из файла или папки. Он вернется unixtime, то вы можете сравнить с когда-нибудь

0

По вопросам рекламы [email protected]