Robert B.: Rekursive Funktion liefert ungewünschtes Ergebnis

Beitrag lesen

Moin Jochen,

function suche_freiraum($line = 842,$img2) {
    $freiraum = $failed = 0;
    $fp = fopen($_SERVER['DOCUMENT_ROOT']."/tmp/pixel.txt",'a+');

Hier wird die genannte Datei zum Anhängen geöffnet.

    for($myY = $line;$myY > 500;$myY--) {
        // Line zuende und failed noch auf 0 ?
            fwrite($fp,"line ".$myY.": failed\n");
            suche_freiraum($myY-1,$img2);

Hier wird über die Rekursion diese Datei noch einmal zum Anhängen geöffnet.

        if($freiraum == 150) {
            fclose($fp);
            return $myY;
        }
    }
    fclose($fp);
    return 0; // kein Freiraum gefunden
}

Hier sind beide fclose hintereinander zu sehen – auf die gleichen Dateizeiger! Das sieht irgendwie falsch aus.

Viele Grüße
Robert