Überflüssige Dateien löschen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Überflüssige Dateien löschen

    Hallo zusammen,

    ich habe eine MySQL-Tabelle (tblfz) in der sich u.a. folgende Felder vom Typ String befinden:

    Foto1: z.B. 1345.jpg
    Foto2: z.B. 2345.jpg
    Foto3: z.B. 3345.jpg
    Foto4: z.B. 4345.jpg
    Foto5: z.B. 5345.jpg

    Dazu gehören dann die passenden Fotodateien, die im Webverzeichnis htdocs/img liegen. Diese haben genau den gleichen Namen, also z.B. 1345.jpg, 2345.jpg, usw.

    Ich möchte nun ein php-Script erstellen, das über einen Cronjob alle 7 Tage ausgeführt wird und folgendes machen soll:

    -Die überflüssigen Fotodateien sollen aus dem Verzeichnis gelöscht werden, wenn kein entsprechender String mehr in der Tabelle enthalten ist.

    D.h. habe ich z.B. den String 3345.jpg aus der Tabelle gelöscht, soll auch die zugehörige Datei gelöscht werden.
    Oder wenn ein kompletter Datensatz gelöscht wurde sollen auch wieder die entsprechenden Dateien gelöscht werden.

    Das Script müsste also alle Dateien im Verzeichnis nacheinander durchgehen und schauen ob ein entsprechender String in den Datensätzen vorhanden ist oder nicht.

    Der Aufbau des Fotostrings ist folgender:

    Die erste Ziffer ist die Nummerierung des Fotos
    Die Zahl dahinter ist die Datensatz-ID (fznr)

    Kann mir jemand weiterhelfen, wie ein effektives Script aussehen könnte?

    Gruss Klaus

  • #2
    warum nicht direkt beim datensatz-löschen auch die datei löschen?

    Kommentar


    • #3
      Hallo,

      ich habe eine Access-Datenbank in der ich die Daten verwalte und bearbeite.

      Ich sende dann per FTP eine Textdatei in die MySQL-Tabelle und auch die Fotos werden per FTP in das Serververzeichnis geladen.

      Gruss Klaus

      Kommentar


      • #4
        kind a weird.

        naja, dein script kann ja
        - mit glob() die liste der dateien erfassen,
        - mit foreach() diese durchlaufen,
        - mit kleinen string-spielereien die id aus dem namen herausfiltern,
        - diese danach in der db suchen.
        - falls sie nicht gefunden wurde, wird die datei gelöscht.

        ist zwar sehr unschön, aber wenn es in die bestehende architektur passt und nur ein mal die woche ausgeführt wird....

        Kommentar


        • #5
          Hallo,

          ja genau so hab ich mit das vorgestellt.

          Könntest Du ir sagen, wie das Script dann aussehen würde.

          Gruss Klaus

          Kommentar


          • #6
            würde ganz gut ausehen.. eine php-datei, ca. 40-60 zeilen lang, wenn's hoch kommt.

            Kommentar


            • #7
              Hallo,

              ja jetzt ist es kein Problem mehr 40-60 Zeilen und fertig.

              Aber jetzt im Ernst.

              Wie muss ich anfangen?

              Funktionen zum Zugriff auf Dateien usw.

              Gruss Klaus

              Kommentar


              • #8
                Fange an dich auf http://php.net/manual/ schlau zu machen.

                Mal was anderes: Du sendest per FTP eine Textdatei in die MySQL-Tabelle? Wie denn das? MySQL spricht kein FTP, eine Tabelle schon gar nicht.

                Kommentar


                • #9
                  Hallo,

                  mit dem senden per FTP war nicht richtig.

                  Ich erstelle aus Access heraus eine Textdatei und diese lese ich dann mit phpmyadmin in die MySQL-Tabelle ein.

                  Nur die Fotodateien sende ich per FTP auf den Server.


                  Ich werde jetzt mal anfangen mich auf der vorgeschlagenen Seite schlau zu machen.

                  Besten Dank bis hierhin.

                  Gruss Klaus

                  Kommentar

                  Lädt...
                  X