[Suche] Script, dass alle Dateinen in Unterordner verschiebt ausser der neuesten

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

  • [Suche] Script, dass alle Dateinen in Unterordner verschiebt ausser der neuesten

    Hallo,
    ich geb zu ich bin noch ein Scriptblödi.
    Bin schon stolz ein Script in meine Seite eingebaut zu haben welches nur das neueste Bild anzeigt.
    Das ganz ist für 4 Webcams die ich darstelle. Alle haben ein eigenes Unterverzeichnis.
    Jedoch wird mein Script ab ein paar hundert Dateien echt lahm wegen der Auswertung welche die neuste ist.
    Ich hab das Script auch in der Version: Zeig neueste an und lösch den Rest.
    Da ich die Bilde aber benötige suche ich aber:
    Zeig neustes Bild an und verschiebe alle anderen in Unterverzeichnis "Sicherung"
    Hat da jemand vielleicht etwas fertiges für mich?
    Bei Bedarf setz ich auch gern den vh. Code hier rein.

  • #2
    Zitat von Stefanie2 Beitrag anzeigen
    ...
    Ich hab das Script auch in der Version: Zeig neueste an und lösch den Rest.
    Wie funktioniert der "lösch den Rest"-Teil des Scripts?
    Wahrscheinlich klapperst du das Verzeichnis Datei für Datei ab und löschst jede Datei, die nicht den gewünschten Kriterien entspricht. Dann sollte es kein Problem sein, die Löschfunktion durch den Aufruf von rename() zu ersetzen. Diese Funktion verschiebt auch Dateien ...
    Klingon function calls do not have “parameters”‒they have “arguments”‒and they always win them!

    Kommentar


    • #3
      Freu, das jemand geantwortet hat DANKE
      Also mein Code sieht so aus:
      (Vielleicht könnte man unlink durch rename ersetzen? Ich möchte aber auf dem Server nicht rumexperimentieren.
      PHP-Code:
      <?PHP
      $verzeichnis 
      './xyz/';
      $tempfile "";
      $verz opendir($verzeichnis);
      while(
      $file readdir($verz))
      {
      $verzfile $verzeichnis.$file;
      $info = @getimagesize($verzfile);
      if(
      $info[2]==(1||2||3) && $file != "." && $file != ".." && !is_dir($file))
      {
      $tzeit filemtime($verzfile);
      if(
      $tzeit>$tempzeit)
      {
      $tempfile $file;
      $tempzeit $tzeit;
      $breite $info[0];
      $hoehe $info[1];
      $datumanz date("d.m.Y - H:i"$tzeit);
      }
      }
      }
      closedir($verz);

      //alle alten Dateien löschen
      $verz opendir($verzeichnis);
      while(
      $file readdir($verz))
      {
      if(
      $file !=$tempfile && $file != "." && $file != ".." && !is_dir($file))
      {
      @
      unlink($verzeichnis.$file);
      }
      }
      closedir($verz);
      //Ausgabe
      if($tempfile==""){
      $anzeige 'Kein Bild'//Text wenn kein Bild
      }else{
      //Ausgabe wenn Bild / Datum über dem Bild
      $anzeige 'Update am: '.$datumanz.' Uhr<br><img src="'.$verzeichnis.$tempfile.'" border="0"><br>';
      }
      echo 
      $anzeige;
      ?>

      Kommentar


      • #4
        Hallo,

        Zitat von Stefanie2 Beitrag anzeigen
        PHP-Code:
        $info[2]==(1||2||3
        das macht mit Sicherheit nicht das, was du denkst. Vermutlich meinst du

        PHP-Code:
        ($info[2] >= && $info[2] <= 3
        oder

        PHP-Code:
        in_array($info[2], array(123)) 
        Gruß,

        Amica
        [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
        Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
        Super, danke!
        [/COLOR]

        Kommentar


        • #5
          Ich weiß, um ehrlich zu sein, nicht was der Abschnitt macht.
          Habe das Script gefunden und nach meinen Bedürfnissen angepasst.
          PHP ist etwa wie mein Schulfranzösisch: Am Ende bekomme ich mein Brot, aber meistens lacht der Bäcker.

          Der Code funktioniert jedenfalls prima. Er wird nur, bedingt durch die wachsende Zahl der Bilder, logischerweise langsamer.

          Aktuell habe ich mir mit einem FTP Batch geholfen. Das holt die Dateien auf den Lokalen Rechner und löscht sie anschließend.

          Eine PHP Online Lösung wär mir jedoch lieber.

          Weiß echt keiner von euch wie man das umschreiben müsste? (rename?)

          Kommentar


          • #6
            *move* nach Projekthilfe.

            Kommentar


            • #7
              Ersetze

              PHP-Code:
              unlink($verzeichnis.$file); 
              durch

              PHP-Code:
              rename($verzeichnis.$file,$verzeichnis."sicherung/".$file); 
              "sicherung" kannst du dann durch den Unterordner ersetzen in welchem du deine Dateien dann haben willst.

              Kommentar


              • #8
                Danke, dachte nicht, dass es so simpel.
                Nur ein Fehler ist noch drin.
                Das Unterverzeichnis Sicherung ist für ihn auch ein File und er möchte es mit sichern, was logisch nicht geht. Daraus folgt dann:
                Warning: rename(./verzeichnis/sicherung,./verzeichnis/sicherung/sicherung) [function.rename]: Invalid argument in /mnt/web1/11/12/56492123/htdocs/m/verschieb.php on line 92

                Wie kann ich ihm sagen, dass er nur files und keine Verzeichnisse nimmt?

                Stelle mir das etwa so vor:
                PHP-Code:
                rename($verzeichnis.$file.".JPG",$verzeichnis."sicherung/".$file); 
                Gibt es so etwas?

                Kommentar


                • #9
                  PHP: is_file - Manual
                  PHP: is_dir - Manual
                  [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                  Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                  Super, danke!
                  [/COLOR]

                  Kommentar


                  • #10
                    Hallo,
                    könntest du mir nen Tipp geben?
                    Muss ich das in die IF Zeile einfügen?
                    Vielleicht ein Beispiel?
                    Ich kriegs nicht hin

                    Kommentar


                    • #11
                      Mein Tipp: Klick nochmal die Links an und sieh dir dort die vielen, vielen Beispiele an, die es vollkommen unnötig machen, dass ich dir jetzt noch eins gebe.
                      [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                      Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                      Super, danke!
                      [/COLOR]

                      Kommentar


                      • #12
                        Die Überprüfung ist eigentlich schon in der if-bedingung drin.
                        Siehe "&& !is_dir($file)" in:
                        PHP-Code:
                        if($file !=$tempfile && $file != "." && $file != ".." && !is_dir($file)) 
                        aber du kannst ja noch drauf prüfen ob es tatsächlich eine Datei ist.

                        PHP-Code:
                        if($file !=$tempfile && $file != "." && $file != ".." && !is_dir($file) && is_file($file)) 

                        Kommentar


                        • #13
                          Dankeschön an den lieben Frosch. Das geht anstandslos.
                          Ich glaub ich geb das auf mit PHP und bezahl lieber jemanden der sich damit auskennt. Auf Dauer schone ich damit wohl nerven.
                          Wirklich was lernen tu ich bei meinen seltenen Einsätzen auch nicht. In den Zeiträumen dazwischen vergess ich ja mehr als ich gelernt hab

                          Nochmals lieben Dank

                          Kommentar

                          Lädt...
                          X