also das mit dem fputcsv lüppt jez weil ich die fkt von einem typen einfach kopiert habe.
so nun habe ich mir gedacht mein script soll ja die alten einträge in
archive.csvrein packen und nicht jedes mal ausführen sondern nur wenn es den nauch alte einträge gibt. Mein Problem ist er schreibt mein archive immer neu obwohl es keine alten einträge gibt...d.h. die alten einträge sollten stehen bei archive aber was ich finde ist ne leer datei
PHP-Code:
<?php
include("fputcsv.php");
// EINLESEN DER CSV-DATEI
$file = 'csv/reservierung.csv';
$handle = fopen($file, 'r');
$daten = array();
$timestamps = array();
while(($data = fgetcsv($handle, filesize($file), '-')) !== false) {
$daten[] = $data;
$datum = explode('.', $data[2]);
$uhrz = explode(':', $data[4]);
$timestamps[] = mktime($uhrz[0], $uhrz[1], 0, $datum[1], $datum[0], $datum[2]);
}
fclose($handle);
//Filtern der alten Einträge
$jetzt = time();
$m = count($daten);
$tmp = tempnam('/csv', 'archive.csv');
$handle = fopen($tmp, 'a');
for ($i =0; $i <= $m; $i++) {
if ($timestamps[$i] < $jetzt)
{
$filter = true;
fwrite($handle, join($daten[$i])."\n");
fputs($handle, $archive."\n");
unset($daten[$i]);
}
}
fclose($handle);
if ($filter == true)
{
//Archiv Einträge in Array
$handle = fopen('csv/archive.csv', 'r');
while (!feof($handle)) {
$archive = fgets($handle);
}
fclose($handle);
copy($tmp, 'csv/archive.csv');
unlink($tmp);
array_multisort($timestamps,SORT_ASC,$daten);
$tmp = tempnam('/csv', 'reservierung.csv');
$handle = fopen($tmp, 'a');
foreach ($daten as $zeile) {
fputcsv($handle, $zeile, '-');
}
fclose($handle);
copy($tmp, 'csv/reservierung.csv');
unlink($tmp);
}
else
unlink($tmp);
?>