Problemet er lidt hvor skal jeg bruge fclose() og unlink() i forhold til filerne, og uden at systemet bliver langsomt af det.
<?php
// Lars Sørensen,
www.larsskaarup.dk, Januar 2007
// We need to load data from Navision exported to a plain csv-file
// This data will be put in the database accordingly to it's order-number.
//require('system/global_defs.php');
//include('system/date.php');
function indlaes() {
$dir = "//srv-fil1/DS Spærsalg/Navi-TOSS/test/";
$nydir = "//srv-fil1/DS Spærsalg/Navi-TOSS/test/indlaeste/";
$nytomdir = "//srv-fil1/DS Spærsalg/Navi-TOSS/test/tomme/";
if ($handle = opendir($dir)) {
// echo "Directory handle: $handle<br>";
// echo "Files:<br>";
/* Dette er den korrekte metode til at gå igennem en mappe */
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != ".." && $file != "indlaeste" && $file != "backup" && $file != "tomme") {
//For at komme af med tomme filer flytter vi dem til mappe tomme
$fil = $dir . $file;
if (filesize($fil) < 1) {
$nytomfil = $nytomdir.$file;
copy($fil, $nytomfil);
unlink($fil);
}
//Vi fjerner lige dem der ikke står noget i
if (filesize($fil) > 0) {
//echo $file ."<br> ";
$indlaes = fopen($fil, 'w');
while (!feof($indlaes)) {
$filen = fgetcsv($indlaes, 50, ";");
$filen[0]." ". $filen[1]."<br>";
//Første forekomst af *
$pos1 = strpos($filen[0], '*');
//echo"<br>";
//Sidste forekomst af *
$pos2 = strrpos($filen[0], '*');
//Første forekomst af *
$pos3 = strpos($filen[1], '*');
//Sidste forekomst af *
$pos4 = strrpos($filen[1], '*');
$ordre = substr($filen[0], $pos1+1, $pos2-1);
$leveret = substr($filen[1], $pos3+1, $pos4-1);
//Fjerner sager der ikke hører til i TOSS, vi hardcoder lige grænserne ind her
if ($ordre < 40000){//Enten gamle sager eller Flexhals sager, første spærsalgs sag er 40000
$nytomfil = $nytomdir.$file;
echo $nytomfil;
//fclose($indlaes);
copy($fil, $nytomfil);
// unlink($fil);//den sletter ikke?
}
/*
if ($ordre > 59999){//Entreprise sager, første Entreprise sag er 60000
$nytomfil = $nytomdir.$file;
//fclose($indlaes);
copy($fil, $nytomfil);
unlink($fil);
}
*/
/*
if ($leveret != ""){
//Er ikke sikret for år 2100 problemet, men det går nu nok... ;-)
$aarstal = strrpos($leveret, '-');
$nyaar = "20".substr($leveret, $aarstal+1, 2);
$leveret = substr($leveret, 0, $aarstal)."-".$nyaar;
//echo "<br>";
}
*/
if ($ordre > 40000 || $ordre < 59999) {
echo "dgdf";
/*
$query = "SELECT id, MAX(rev) AS rev FROM ordre
WHERE ordre = '".$ordre."' GROUP BY ordre";
$sql = mysql_query($query) or die(mysql_error());
$sql = mysql_fetch_array($sql);
echo mysql_query('UPDATE ordre5 SET r549 = 1, r549a = '.$leveret.' WHERE tilbudsnummer='.$sql[id].'') or die(mysql_error());
*/
/* $nyindlaestfil = $nydir.$file;
copy($fil, $nyindlaestfil);
//unlink($fil);
*/ }
echo "<br>";
}
fclose($indlaes);
unlink($fil);
}
}
}
closedir($handle);
}
}
?>