comunicout: Rekursive Funktion abbrechen

hallo leute,
ich sitz mittlerweile schon eine ganze weile an einem nervigen problem. und zwar
geht es um fileupload/gd. ich gebe dem user die möglichkeit ein bild zu erstellen und
dieses dann auf dem server zu speichern. nun will ich die speicherroutine automatisch,
ohne dass der user einen namen angeben muss, realisieren. dazu existiert ein verzeichnis,
in dem alle (von allen usern) erstellten bilder liegen.
lädt jetzt ein user ein bild hoch und will es speichern, schaue ich in dem verzeichnis nach, ob
der filename bereits vorhanden ist. wenn ja, dann soll eine 0 als suffix angehängt werden
(so: bild0.jpg). sollte dieser name allerdings auch schon vorhanden sein, muss der name
zu bild1.jpg werden un so weiter...

meine funktion dazu lautet

function checkFilename($filename, $suffix)
{
  $Pr_Su_X  = strrpos ($filename, ".");
  $FilePraefix  = substr($filename,0,$Pr_Su_X);
  $FileSuffix  = substr($filename,$Pr_Su_X + 1);
  $posFilename  = $FilePraefix.$suffix.".".$FileSuffix;
  $temp_verz  = @opendir ('temp');

while($f_name=@readdir ($temp_verz))
   if($f_name == $posFilename)
     checkFilename($filename, $suffix + 1);
   else $xx = $posFilename;

// echo $posFilename
return $xx;
}

so wie sie oben jetzt abgebildet ist bekomme ich immer das ergebnis bild0.jpg. egal, ob dieses
im verzeichnis bereits vorhanden ist oder nicht.
--
wenn ich den kommentar aktiviere, bekomme ich zu sehen, dass der code, der da steht, mehrmals
ausgeführt wird. der RICHTIGE wert (bildname) wird also wieder überschrieben.
--
zum einen verstehe ich nicht, weswegen an der stelle (kommentar) der code mehrmals aufgeführt
wird, und zum anderen wüsste ich gerne, ob man einfach eine abbruchbedingung einbauen kann.

für jegliche denkanstöße oder auch lösungswege bin ich sehr dankbar

mfg
comunicout

--
fütter mein ego !\nwelcome to electro-smog therapy\n
  1. Moin Moin !

    1. Dein Coding-Stil ist fürchterlich. Die geschweiften Klammern ({}) mag der Interpreter/Compiler für optional halten. Ich halte sie für erforderlich, weil sie die Stuktur des Programmes verdeutlichen.

    2. Warum erledigst Du den Job einer Schleife in einer Rekursion?

    maximum = 10^6
    Zähler = 0

    so lange Zähler < maximum {
       erhöhe Zähler um eins
       dateiname = "bild" +  Zähler als Zahl mit 6 stellen + ".jpg"
       falls Datei dateiname existiert {
         nächsten Schleifendurchlauf starten
       } sonst {
         gebe dateinamen zurück
       }
    }
    gebe Fehlerwert zurück, wahlweise Programmabbruch

    Alexander

    --
    Nein, ich beantworte keine Fragen per eMail. Dafür ist das Forum da.
    Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so!"
    1. hi,

      1. Dein Coding-Stil ist fürchterlich. Die geschweiften Klammern ({}) mag der Interpreter/Compiler für optional
        halten. Ich halte sie für erforderlich, weil...

      bei einem so einfachen bzw. überschaulichen quellcode sind klammern nur nervig. die, die damit schwierigkeiten
      haben, können sie ja dazuschreiben wenn sie es so nicht verstehen. aber das finde ich albern..

      1. Warum erledigst Du den Job einer Schleife in einer Rekursion?

      ..ähm, sagtest du nicht gerade was von Coding-Stil ?

      mfg
      comunicout

      --
      fütter mein ego !
      welcome to electro-smog therapy
      1. Moin Moin !

        1. Warum erledigst Du den Job einer Schleife in einer Rekursion?
          ..ähm, sagtest du nicht gerade was von Coding-Stil ?

        Ja, und? Was hat das damit zu tun?

        Die Frage bleibt: Warum benutzt Du eine Rekursion, wenn eine Schleife ausreicht?

        Alexander

        --
        Nein, ich beantworte keine Fragen per eMail. Dafür ist das Forum da.
        Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so!"
        1. Hallo,

          ..ähm, sagtest du nicht gerade was von Coding-Stil ?

          Die Frage bleibt: Warum benutzt Du eine Rekursion, wenn eine Schleife ausreicht?

          Ist vielleicht stylischer?

          Viele Grüße,

          Stefan

          --
          Lass dir das Tanzen NICHT verbieten
          http://petition-tanzverbot.de.vu