#!/usr/bin/php id); define("INTERNAL_USER_USERNAME", $me->username); define("MFBASE_BYPASS_LOGIN", true); $folder = __DIR__."/input/"; //$filename = __DIR__."/input/GST60001_V2.csv"; $now = date("U"); $db = FronkDB::singleton(ADDRESSDB_DBHOST, ADDRESSDB_DBUSER, ADDRESSDB_DBPASS, ADDRESSDB_DBNAME); $log = mfLoghandler::singleton(); $start = date("U"); $last_ts = $start; $input_dir = opendir($folder); while($file = readdir($input_dir)) { if(!preg_match('/\.csv$/', $file)) { echo "Skipping $file\n"; continue; } $filename = $folder.$file; $input = fopen($filename, "r"); $bom = "\xef\xbb\xbf"; if(fgets($input, 4) !== $bom) { // BOM not found - rewind pointer to start of file. rewind($input); } $headers = []; $import_date = false; $c = 0; $i = 0; while($csv = fgetcsv($input, 0, ";")) { $i++; if($i == 1) { foreach($csv as $key => $name) { $headers[$name] = $key; $match = []; // EZ #01.10.2024# if(preg_match('/EZ #(\d\d)\.(\d\d)\.(\d\d\d\d)/', $name, $match)) { $d = $match[1]; $m = $match[2]; $y = $match[3]; if(!$d || !$m || !$y) { die("Kein Datum in EZ Header gefunden ($d, $m, $y)\n"); } $import_date = "$y-$m-$d"; $headers["EZ"] = $key; } } continue; } if(!$import_date) { die("Kein Datum in EZ Header gefunden ($import_date)\n"); } if(!trim($csv[1])) { continue; } $kgnr = trim($csv[$headers["KG-NR"]]); $gstnr = trim($csv[$headers["GST-NR"]]); $g = trim($csv[$headers["G"]]); $ba = trim($csv[$headers["BA"]]); $nu = trim($csv[$headers["NU"]]); $tind = trim($csv[$headers["TIND"]]); $ind = trim($csv[$headers["IND"]]); $flaeche = trim($csv[$headers["FLAECHE"]]); $emz = trim($csv[$headers["EMZ"]]); $gfn = trim($csv[$headers["GFN"]]); $gft = trim($csv[$headers["GFT"]]); $kgez = trim($csv[$headers["KG-EZ"]]); $ez = trim($csv[$headers["EZ"]]); //echo "kgnr: '$kgnr' gstnr: '$gstnr' g: '$g' ba: '$ba' nu: '$nu' tind: '$tind' ind: '$ind' flaeche: '$flaeche' emz: '$emz' gfn: '$gfn' gft: '$gft' kgez '$kgez' ez: '$ez'\n"; $sql = "INSERT INTO `Gwrgst` (`kgnr`,`gstnr`,`g`,`ba`,`nu`,`tind`,`ind`,`flaeche`,`emz`,`gfn`,`gft`,`kgez`,`ez`,`create`,`edit`) VALUES"; $insert_values[] = "($kgnr,'$gstnr','$g','$ba','$nu','$tind','$ind','$flaeche','$emz','$gfn','$gft','$kgez','$ez',$now,$now)"; $c++; if($c % 100000 == 0) { runQuery($sql.implode(",", $insert_values), $c); $insert_values = []; } } if(count($insert_values)) { runQuery($sql . implode(",", $insert_values), $c); $insert_values = []; $c = 0; } echo "$filename: $i lines imported\n"; } function runQuery($sql, $c) { global $db; global $last_ts; mysqli_query($db->link, $sql); $now = date("U"); //echo "$c: ".date("Y-m-d H:i:s")." - delta ".($now - $last_ts)."\n"; $last_ts = $now; }