tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
1
ZUGRIFFE
299
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von backlash
    backlash backlash ist offline Mitglied Bronze
    Registriert seit
    Feb 2002
    Ort
    Versmold
    Beiträge
    44
    Hallo,

    Ich plane ein Script welches ein Verzeichnis, welches zuvor an die Funktion übergeben wurde rekursiv nach dateien durchsucht, und selbige dann an ein weiteres Programm übergibt.
    Wird ein Sub-Ordner erkannt, ruft sich die Funktion selbst mit den neuen Pfadangaben erneut auf.
    Das Funktioniert alles soweit einwandfrei.
    Mein Problem vor welchem ich derzeit stehe, stellt sich wie folgt dar:
    Während ein Verzeichnis eingelesen wird, sollen im gleichen Zuge auch die Dateien durchnummeriert & umbenannt werden. Letzteres übernimmt das Programm an welches übergeben wurde.
    Problemstellung ist nun nur, das zwar, solange wie sich die Funktion nicht selbst wieder aufruft, die Nummerierung klappt. Wird aber das Verzeichnis gewechselt, folgend dadrauf auch die Funktion erneut auferufen, so beginn die Zählung wiedr bei "null".

    Ich wäre für Lösungsvorschläge dankbar.

    PHP-Code:

    <?php

    function make_album($ordner$album$i) {

    if(!@
    dir("/home/directory/thumb/".$album))
    {
    mkdir ("/home/directory/thumb/".$album );
    }

     
    $handle opendir($ordner);

      while (
    $file readdir ($handle)) {
        if(
    $file != "." && $file != "..") {
          if(
    is_dir($ordner."/".$file)) {
            echo 
    "make_album($ordner/$file$album$i)\n";
            
    make_album($ordner."/".$file$album$i);
          } else {
    $i++;
    $name "img".$i;

    $compl = ($ordner."/".$file);
    $ext  array_pop(explode('.'$file));

    //echo "Erstelle Thumbnail von Datei ".$ordner."/".$file."\n\n";
    shell_exec ("convert -size 150x113 \"".$ordner."/".$file."\" -resize 150x113 +profile '*' \"/home/directory/thumb/".$album."/".$name.".".$ext."\"");

    //echo "Passe Größe von Datei ".$ordner."/".$file." an.\n\n";
    shell_exec ("convert -size 640x480 \"".$ordner."/".$file."\" -resize 640x480 +profile '*' \"/home/directory/thumb/".$album."/tn_".$name.".".$ext."\"");
    //@unlink($compl);
    //         echo "Originaldatei ".$compl." gelöscht.\n\n\n";
    echo $i."\n";
          }

        }
      }
      
    closedir($handle);
    }
    make_album("/home/directory/thumb/bild""test""0");
    Geändert von backlash (16.09.03 um 10:10 Uhr)
     

  2. #2
    Registriert seit
    Jul 2002
    Ort
    Frankfurt (Hessen)
    Beiträge
    2.135
    Da gibt es bei Functionen sowas nettes wie static

    PHP-Code:

    static $i 0
    Variablen die Static sind werden bei Recursiven Aufrufen nicht neu
    gesetzt sondern behalten ihren Vorgängerwert.

    Damit kannste dann lustig hochzählen
     

Ähnliche Themen

  1. Antworten: 0
    Letzter Beitrag: 11.01.11, 21:40
  2. Antworten: 4
    Letzter Beitrag: 22.03.06, 20:50
  3. Antworten: 0
    Letzter Beitrag: 06.10.04, 14:03
  4. PROBLEM! Pinnacle 2 GB Begrenzung Windows 2000 DC 50 PROBLEM!
    Von hennym im Forum Videoschnitt, Videotechnik & -produktion
    Antworten: 6
    Letzter Beitrag: 17.09.03, 22:09
  5. Antworten: 6
    Letzter Beitrag: 13.06.02, 12:29