我需要从我的文件系统中打开 2 个文件。这两个文件都是 csv 文件。我需要确定两个文件的差异:所以我需要检查昨天与今天相比内容有何变化。
每天将恰好有 1 个文件。这些文件是根据时间戳标记的,因此没有真正的模式。(澄清一下,是的,它是 unix 时间戳,但不是每天都在同一时间创建文件)例如,昨天的文件被称为:file-1601926309814.csv,前一天的文件(因为今天还没有创建文件):file-1601847963649.csv。
我环顾四周,发现了 filemtime,但我不确定这是否有那么大的帮助。我想出的另一个选择是检查glob目录中的文件,但我不确定这是否是一个好的解决方案。
到目前为止我的代码:
<?php
// Simple script to determine a negative Delta between 2 files
// These 2 files are taken from a given destination and pushed
// through an array diff. The result will be written in a new
// file.
$path = "G:\\interfaces\\out\\SAP\\Shopartikel\\";
$sFileYesterday = "testfile_1.csv";
$sFileToday = "testfile_2.csv";
$aItemsYesterday = array();
$aItemsToday = array();
$aOutput = array();
// get all files from yesterday
$fHandleYesterday = fopen($path.$sFileYesterday, "r");
while (($line = fgetcsv($fHandleYesterday, 0, ";")) !== false) {
$aItemsYesterday[] = $line[0];
}
// get all files from today
$fHandleToday = fopen($path.$sFileToday, "r");
while (($line = fgetcsv($fHandleToday, 0, ";")) !== false) {
$aItemsToday[] = $line[0];
}
// determine the difference
$aOutput = array_diff($aItemsYesterday, $aItemsToday);
var_dump($aOutput);
如上所述,输出是正确的,但我还需要获取正确的文件。
有任何想法吗?