Ferdi: Falsche Mail kommt an

Hallo Forum,

Pseudocode:

function check {

  • Verzeichnissgröße prüfen
    if ($gesamtgroesse > $max_size) {
  • älteste Datei löschen
  • Dateinamen (der gel. Datei) in array $array_del_files packen
  • Funktion check wieder aufrufen
    } else {
  • Schick Mail
    }
    }
    -Funktionsaufruf

Frage: Wie bekomme ich das array: $array_del_files in die Mail??
Ich wäre ja auch bereit, die Mail nicht aus der Funktin heraus, sondern aus dem Hauptscript zu schicken, dennoch bleibt auch hier die Frage, wie bekomme ich das array in die Mail??

Gruß, Ferdi

  1. Hallo,

    function check {

    • Verzeichnissgröße prüfen
      if ($gesamtgroesse > $max_size) {
    • älteste Datei löschen
    • Dateinamen (der gel. Datei) in array $array_del_files packen
    • Funktion check wieder aufrufen

    das ist ein denkbar ungünstiges Vorgehen!

    } else {

    • Schick Mail
      }
      }

    Ich wäre ja auch bereit, die Mail nicht aus der Funktin heraus, sondern aus dem Hauptscript zu schicken, dennoch bleibt auch hier die Frage, wie bekomme ich das array in die Mail??

    mit einer einfacheren, arbeits-, speicher- und nervenschonenderen Vorgehenweise mit einer simplen Schleife ohne überflüssige Rekursion, die Dein Problem nur viel komplizierter macht:

    initialisiere leeres Array der gelöschten Dateien
    Sortiere die Dateien nach dem Alter absteigend
    Solange Gesamtgröße > Maximalgrösse
        Ermittle Größe der ältesten Datei
        Lösche älteste Datei
        Falls Löschen erfolgreich war
            Hänge Dateinamen an Liste der gelöschten Dateien an
            Reduziere Gesamtgröße um Größe der gelöschten Datei
        Ende Falls
        Entferne Dateiname aus Liste der Dateien
    Ende Solange
    Schicke Mail mit dem Array der gelöschten Dateien

    siehe auch </archiv/2012/3/t209433/#m1425405> ;-)

    Freundliche Grüße

    Vinzenz

    1. Hallo

      Lösche älteste Datei
          Falls Löschen erfolgreich war
              Hänge Dateinamen an Liste der gelöschten Dateien an
              Reduziere Gesamtgröße um Größe der gelöschten Datei
          Ende Falls
          Entferne Dateiname aus Liste der Dateien

      soll der Name auch entfernt werden, wenn das Löschen nicht erfolgreich war?

      Gruß
      Kalk

      1. Hallo,

        Lösche älteste Datei
            Falls Löschen erfolgreich war
                Hänge Dateinamen an Liste der gelöschten Dateien an
                Reduziere Gesamtgröße um Größe der gelöschten Datei
            Ende Falls
            Entferne Dateiname aus Liste der Dateien

        soll der Name auch entfernt werden, wenn das Löschen nicht erfolgreich war?

        ja.

        Vermutlich wird der nächste Versuch zu löschen wieder scheitern, und wieder scheitern und wieder scheitern. Besser, es gar nicht erst erneut zu versuchen. Siehe verlinkter Archivbeitrag.

        Wenn die Liste leer ist, sollte die Schleife übrigens auch beendet werden ...

        Freundliche Grüße

        Vinzenz

    2. siehe auch </archiv/2012/3/t209433/#m1425405> ;-)

      Hallo Vinzenz,

      ah, da iste er ja. Ich hab den gesucht, aber nicht mehr gefunden.
      Ah, jetzt versteh ich erst, was Du Kurt seinerzeit sagen wolltet. Klar, die Rekursion ist völlig überfüssig.

      Habs soeben umgestrickt und es läuft wunderbar.

      Danke für den Denkanstoß, Ferdi