用PHP搜索服务器查找新添加的文件


search server for newly added files with PHP

我试图在php中编写cronjob来搜索服务器上新上传的文件。每天晚上服务器都会添加一个csv文件,该文件必须被拉到我的本地服务器,并插入到我的数据库中。我可以读取csv文件,将其插入数据库,以及在我这端执行其他操作,但不知道如何每天晚上扫描目录以查找新文件。有人对这个有什么建议吗?

算法:

  1. 扫描目录,按日期排序文件,记录最近文件的日期
  2. 在随后的扫描中,将最新文件的日期与记录的日期
  3. 进行比较
  4. 如果日期较新,表示上传了新文件。

虽然从技术上讲,您可以使用纯PHP完成此操作,但我将使用find命令:

$files = explode("'0",`find /path/to/dir -mtime -1 -iname '*.csv' -print0`);

使用scandir,创建一个包含所有文件的数组$allFiles。创建另一个数组$oldFiles,其中包含该目录中的所有现有文件。之后,执行array_diff($allFiles, oldFiles)将生成一个仅包含新文件的数组。