我有一个进程,其中.csv文件被发送到服务器以使用csv上的信息更新数据库。
.csv文件中的第一列是一个日期,文件中始终只有不同的日期。
有没有办法识别文件中的这两个日期?我需要知道哪些日期是为了从数据库中删除它,然后使用新信息进行更新。
这是我必须阅读文件的功能:
function query_frag($line){
$frag = str_getcsv($line,"",',',"\\");
if(count($frag) < 3)
return false;
$error_date = preg_replace('/\//','-',$frag[0]);
$error_monitoring_page = trim($frag[1]);
$quantity = (int)$frag[2];
$error_code = trim(preg_replace('/[^A-Za-z0-9\-]/', '', substr($frag[1], -6)));
$date_added = 'now()';
if(($quantity == 0) || ($error_date == ''))
return false;
$query = "('$error_monitoring_page','$error_code','$quantity','$error_date',$date_added),";
return $query; }
然后我用以下代码读取文件夹中的文件:
$path = "../received_files/";
$files = array();
if (!is_dir($path)) {
exit('Invalid diretory path');
}
foreach (scandir($path) as $file) {
if ('.' === $file) continue;
if ('..' === $file) continue;
$file_name = '../received_files/'.$file;
$name = $file;
$blob = file_get_contents($file_name);
$lines = explode("\n",trim($blob));
$batch_size = 100;
$total = count($lines);
然后是更新数据库的代码,但在此之前我需要删除所有与文件中的日期匹配的记录。
怎么做?