Moin!
Naja.. er sagt nicht wirklich einen Laufzeitfehler an, dazu kommt er nämlich erst garnicht =/
Bitte: SEI EXAKT! Entweder kriegst du einen Laufzeitfehler - oder sonst irgendeinen Fehler. Dann schreibe exakt, welche Fehlermeldung kommt. Oder du kriegst KEINEN Fehler gemeldet, dann schreibe genau das, und erfinde nicht irgendwas, was deiner Meinung nach vermutlich passiert.
Ich poste mal den code:
Das ist immer gut.
if(file_exists($new_filepath)) {
echo "ES EXISTIERT!<br>";
$check_num="1000";
$check_num verwendest du als Zählvariable. Warum definierst du sie hier als String?
$exiter = "RUN";
Nun ja, es gibt sicherlich bessere Möglichkeiten, ein Flag zu belegen. Mit true und false beispielsweise.
while ($exiter!= "EXIT" || $check_num<="1020") {
$check_num ist hier wieder eine Zahl, und du vergleichst wieder mit einem String.
$bckname = $bck."/".$getuser['kunden_id']."_".$check_num.".gif";
Lediglich _hier_ wird die Zahl als String gebraucht. Meine Empfehlung: sprintf() nehmen. Damit kann man so nette Sachen wie "führende Nullen" festlegen.
if(file_exists($bckname)) {
echo "BELEGT: ".$bckname."<br>";
$exiter = "RUN";
}else{
echo "FREI: ".$bckname."<br>";
$exiter = "STOP";
Bemerke: Hier findest du eine freie Stelle und setzt exiter auf "STOP". In der while-Schleife vergleichst du aber auf "EXIT".
Deshalb: Nimm eine Variable $gefunden, setze sie eingangs auf false, frage in der While-Schleife nach !$gefunden und setze sie dann hier auf true.
}
$check_num++;
Wenn $check_num oben ein String ist, muß der hier in eine Zahl gewandelt werden, damit man 1 addieren kann. Und dann muß er in der while-Schleife wieder in einen String gewandelt werden, damit man mit "1020" vergleichen kann...
}
echo "NAME: ".$bckname;#copy($new_filepath,$bckname);
}
Insgesamt ist deine Schleife wirklich banal. Die Existenz von bis zu 20 Dateien festzustellen ist trivial und sollte schnell abgearbeitet sein. Wenn das bei dir nicht funktioniert, liegt das einzig und allein an Fehlern, die du eingebaut hast.
Bliebe die Frage: Was gibt das Skript denn so aus? Hast du mal wirklich lange gewartet, bis es fertig war? Was sagt deine php.ini zum Thema "max_execution_time"?
- Sven Rautenberg