Ich bin gerade dabei, ein PHP Script zu schreiben, dass die Unterschiede zwischen 2 CSV Dateien erkennt und in ein drittes speichert. Das einzige Problem zurzeit ist, dass ich bestimmte Spalten (Customer ID) ignorieren mag, da sich diese ab und zu ändert, aber nicht gebraucht wird.
Ich erstelle ein Newslettersystem, für das ich die Änderungen seit dem letzten Datenbankbackup benötige, leider habe ich keinen Zugriff auf die Datenabank.
Wie kann ich die Kundennummer ignorieren, ohne die ganze Spalte zu löschen, da ich sie eventuell später benötige?
Hier ist meine Struktur:
CSV Datei 1 (alte DB): Code:
CSV Datei 2 (neue DB): Code:
Das sich die Kundennr für Joseph und Anna Mayer geändert hat, soll ignoriert werden.
Was nicht ignoreirt werden soll, ist dass sich die eMail für Joseoph Mayer und die PLZ Max Muster geändert hat. Dieser Punkt funktioniert allerdings perfekt
Hier ist mein kompletter code (ca 30 Zeilen): http://pastebin.com/bt7Pj3MP. Hier ist der relevante Teil:
Danke !
Flo
Ich erstelle ein Newslettersystem, für das ich die Änderungen seit dem letzten Datenbankbackup benötige, leider habe ich keinen Zugriff auf die Datenabank.
Wie kann ich die Kundennummer ignorieren, ohne die ganze Spalte zu löschen, da ich sie eventuell später benötige?
Hier ist meine Struktur:
CSV Datei 1 (alte DB): Code:
Code:
kundennr,anrede,name,vorname,plz,email 1,herr,muste,max,1234,max.muster@gmail.com 2,herr,joseph,mayer,7367,joseph@mayer.com 3,frau,mayer,anna,7367,anne@mayer.com
CSV Datei 2 (neue DB): Code:
Code:
kundennr,anrede,name,vorname,plz,email 1,herr,muster,max,5678,max.muster@gmail.com 7,herr,joseph,mayer,7367,joseph-mayer@gmail.com 20,frau,mayer,anna,7367,anne@mayer.com
Das sich die Kundennr für Joseph und Anna Mayer geändert hat, soll ignoriert werden.
Was nicht ignoreirt werden soll, ist dass sich die eMail für Joseoph Mayer und die PLZ Max Muster geändert hat. Dieser Punkt funktioniert allerdings perfekt
Hier ist mein kompletter code (ca 30 Zeilen): http://pastebin.com/bt7Pj3MP. Hier ist der relevante Teil:
PHP-Code:
$file1 = file('2015-07-01.csv', FILE_IGNORE_NEW_LINES);
$file2 = file('2015-07-09.csv', FILE_IGNORE_NEW_LINES);
sort($file1);
sort($file2);
$diff = array_diff($file2, $file1);
array_unshift($diff, $_POST['csv_cols']);
$output = substr(md5(rand()), 0, 5). "-output.csv";
file_put_contents($output, implode(PHP_EOL, $diff));
unlink($file1_name);
unlink($file2_name);
header('Content-Description: Download ' . $output);
header('Content-Type: application/force-download');
header("Content-Type: application/download");
header("Content-Length: " . filesize($output));
header("Content-disposition: attachment; filename="" . basename($output) . """);
readfile($output);
unlink($output);
exit;
Danke !
Flo
Kommentar