Hallo zusammen,
Folgende Ausgangssituation:
in einem Verzeichnis "view" auf Windows XP, liegen 10 JPG Dateien. (file1.jpg, file2.jpg...)
Mit einem PHP Script lese ich das Verzeichnis aus und erstelle Thumbnails.
Mit diesem Script (Auszug) funktionierte diese bisher problemlos:
----------------------------------------------------------
$verz=opendir ($userview);
while ($bild = readdir ($verz)) {
if($bild != "." && $bild != ".."){
$id = split("[.]",$bild);
if ($id[1] == "jpg" or $id[1] == "gif") {
$newfilename= "k_".$bild;
$size=getimagesize($userview."\".$bild);
$breite=$size[0];
$hoehe=$size[1];
$neueHoehe=intval($hoehe*$neueBreite/$breite);
if($size[2]==2){
$altesBild=ImageCreateFromJPEG($userview."\".$bild);
$neuesBild=ImageCreate($neueBreite,
$neueHoehe);
ImageCopyResized($neuesBild,
$altesBild,
0,
0,
0,
0,
$neueBreite,
$neueHoehe,
$breite,
$hoehe);
ImageJPEG($neuesBild,
$userview."\".$newfilename);
$file_counter++;
}
}
}
} //while
---------------------
Ich öffne also das Verzeichnis "$userview", gebe der verkleinerten Datei den Zusatz "k_" und erzeuge die kleine JPG mit "$altesBild=ImageCreateFromJPEG(.."
Jetzt liegen neben den 10 großen original JPG Dateien auch 10 kleine die alle mit "k_" anfangen, also "k_file1.jpg,k_file2.jpg...)
Zum eigentlichen Problem;
Bisher hatte ich damit nie Probleme, auf keinem PC und immer mit dem gleichen Script.
Gestern erlebte ich zum ersten mal die Situation, das praktisch eine Art endlos Schleife entstand
Ich hatte nachher im Verzeichnis $useview mehrere 100 Dateien . Es sah dann so aus
k_file1.jpg
k_k_file1.jpg
k_k_k_file1.jpg
k_k_k_k_file1.jpg
usw.
Wenn ich mir das Script nun bewußter anschaue, muss das ja eigentlich auch passieren, da ja in dem gleichen Verzeichnis während dem lesen mit readdir() gleich wieder neue Dateien erstellt werden.
Die entscheidene Frage:
Wenn es aber ein Programmierfehler ist, warum funktioniert das Script so wie es ist aber nahezu überall?
Kann es irgendwie mit der Festplattengeschwindigkeit zusammenhängen?
vielen Dank und viele Grüße
hawk