Ankündigung

Einklappen
Keine Ankündigung bisher.

Dateien in Verzeichnis umbenennen

Einklappen

Neue Werbung 2019

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

  • #16
    Das ist es eben auch nicht

    Zitat von Tobby Beitrag anzeigen
    also, da mir ja anscheinend keine zuhört hir nochmal das Script mit Verbesserung im ganzen:
    PHP-Code:
    <?php
    $dirname
    ='fruehling/';
    $handle=opendir($dirname);
    $zaehler 1;
    while ( 
    $file readdir $handle ) ) {
        if (
    ereg("#^[0-9]+\.jpg$#"$file)) continue;  
        if( 
    $file != "." && $file != "..") {
            while(
    file_exists($dirname.$zaehler.".jpg")) {
                
    $zaehler++;
            }
            if ( 
    rename($dirname.$file$dirname.$zaehler.".jpg" ) ) {
                
    $zaehler++;
                echo 
    "Datei $file nicht gefunden <br>";
            } else {
                echo 
    "Datei $file gefunden <br>";
            }
        }
    }
    closedir$handle );  
    ?>
    Nun habe ich 1.jpg, 2.jpg und 4.jpg , das packt aber meine flash galerie nicht.

    Mein Problem ist halt da ich noch PHP Anfänger, das was Papst sagte umzusetzen. Im endeffekt hat er recht.
    Code:
    $dirname = "fruehling"; //Pfad zum Ordner
    
    $ext = array("jpg"); //Dateitypen die _nur_ angezeigt werden sollen
    
    
    
    $files = array();
    
    if($handle = opendir($dirname)) {
    
        while(false !== ($file = readdir($handle)))
    
            for($i=0;$i<sizeof($ext);$i++)
    
            if(strstr($file, ".".$ext[$i]))
    
                $files[] = $file;
    
                closedir($handle);
    Damit habe ich sie alle im Array, aber wie weiter verfahren

    Kommentar


    • #17
      PHP-Code:
      <?php
      $dirname 
      '';


      if (!
      is_dir($dirname))
          die(
      "Dir '{$dirname}' not found!");
          
      $handle = new dir($dirname);
      $renameFiles = array();
      $freeNumbers = array();

      $lastNumber 0;

      while (
      $file $handle->read()) {
          
          if (
      substr($file, -3) == 'jpg') { # Nicht JPG's ausschließen
              
      $fileName explode('.'$file);
              if (
      count($fileName) != 2) { # falsches Format
                  
      $renameFiles[] = $file;
              } elseif (!
      is_numeric($renameFiles[0])) { # Nicht numerischer Dateiname
                  
      $renameFiles[] = $file;
              } else { 
      # Namensschema passend
                  
      if ((int)$renameFiles[0] > $lastNumber 1) { # Freie Nummer(n) zwischen dieser und der letzten Datei
                      
      $fileInt = (int)$renameFiles[0];
                      for (
      $i $lastNumber 1$i $fileInt$i++) { # Freie Nummern in $freeNumbers speichern
                          
      $freeNumbers[] = $i;
                      }
                  }
                   
      $lastNumber = (int)$renameFiles[0];
              }
          }
      }
      $handle->close();

      $i 0;
      foreach (
      $renameFiles as $file) {
          
      // hier kommt dein umbenennen hin....
          
          
      $i++;
      }
      ?>
      anderer Ansatz mit Kommentaren und brackets :P

      Kommentar

      Lädt...
      X