这是不一个重复的问题,因为我在Stackoverflow上尝试了所有其他现有解决方案,花了5个小时后我无法得到理想的结果。
我希望在修改日期方面从给定目录中获取两个(或更多)新添加的文件。问题是两个文件在时间戳方面都在完全相同的时间进行了修改。
文件名如下:
data_london_20170515_0900.csv
data_toronto_20170515_0900.csv
在专家开发人员发表评论后编辑:
在尝试实施此解决方案之前,我只是在某个时间访问文件,即复制文件后的一分钟。 (因此,在每个使用任务计划程序重新复制的文件后,脚本运行一分钟)
$date=date('Ymd');
$time = date('Hi', strtotime('-1 minutes')); // 1 minute less actual server time
$date_time = $date."_".$time; // part of file name
$timeStamp_logFile = date("d/m/Y")." ".date("h:i:sa"); // DateTime used for file log entry
copy("//server/folder/data_london_".$date_time.".csv","c:/inetpub/wwwroot/folder/files/data_london_".$date_time.".csv");
copy("//server/folder/data_toronto_".$date_time.".csv","c:/inetpub/wwwroot/folder/files/data_toronto_".$date_time.".csv");
# Iterate through copied files and DB insertion
由于零下一分钟的问题,上述解决方案有时会中断。
我试图实现this solution,但我没有输出,只是空数组。还尝试了this solution,但是输出空白。
下面提到的解决方案没有给我输出:
$dir = "//server/folder/";
function scan_dir($dir) {
$ignored = array('.', '..', '.svn', '.htaccess');
$files = array();
foreach (scandir($dir) as $file) {
if (in_array($file, $ignored)) continue;
$files[$file] = filemtime($dir . '/' . $file);
}
arsort($files);
$files = array_keys($files);
return ($files) ? $files : false;
}
$f = scan_dir($dir);
print_r($f);
知道如何解决这个问题吗?
感谢。