Avatar billede henrywood Nybegynder
05. august 2002 - 15:19 Der er 4 kommentarer

Rekursiv filliste og biblioteksliste ?

Hej !

Nogen der kan hjælpe med at lave to PHP-funktioner:

1. funktion: build_FTP_tree($startdir = "/web")

Dette er en funktion, der via et startbibliotek returnerer et array af alle biblioteker f.eks således:
/web|CHMOD
/web/css|CHMOD

(CHMOD er f.eks 777)
og så kan dette array gennemløbes og de enkelte biblioteker oprettes og CHMOD'es.

2. funktion: build_file_list($startdir = "/web")

Denne funktion laver med udgangspunkt i et bestemt sted i biblioteksstrukturen (f.eks /web) en komplet liste over alle filer der kan ses via FTP) Listen ser f.eks således ud:

/web/index.php|1/0|CHMOD
/web/css/css.css|1/0|CHMOD
etc...

(hvor 0 betyder ASCII fil og 1 betyder BINARY fil og CHMOD f.eks er 666)


således at jeg via PHPs FTP-funktioner kan gennemløbe dette array og overføre en fil ad gangen til en anden FTP server (efter at have oprettet hele biblioteksstrukturen)
Avatar billede fangel Nybegynder
05. august 2002 - 15:26 #1
lytter lige, det kunne godt blive sjovt...
Avatar billede henrywood Nybegynder
05. august 2002 - 15:53 #2
Har lige opdaget at min server ikke har FTP-extension installeret. Kører PHP4. Nogen der ved hvordan jeg fra min Windows maskine får denne FTP-extension slået til så FTP-funktionerne virker ?
Avatar billede tipsen Nybegynder
05. august 2002 - 16:28 #3
Her er teknikken til et rekursivt gennemløb af en bibliotekststruktur - funktionen sletter hele det angivne bibliotek ved at løbe underbibliotekerne i gennem rekursivt!

function RecurseDelete($foldername) {
    if (file_exists($foldername)) {
        chmod($foldername, 0777);
        chdir($foldername);
        $dirhandle = opendir('.');
        while ($file = readdir($dirhandle)) {
            if ($file != "." && $file != "..") {
                if (is_dir($file)) {
                    RecurseDelete($file);
                }
                else {
                    if (unlink($file)) echo "Filen \"$file\" er blevet slettet!<br>";
                    else echo "Problemer med at slette filen \"$file\"!<br>";
                }
            }
        }
        closedir($dirhandle);
        chdir('..');
        if (rmdir($foldername)) echo "Biblioteket \"$foldername\" er blevet slettet!<br>";
        else echo "Problemer med at slette biblioteket \"$foldername\"!<br>";
    }
    else {
        echo "Filen/mappen $foldername eksisterer ikke!";
    }
}

$folder = "./mappenavn";
RecurseDelete($folder);

-Det skal selvfølgelig passes lidt til, men du kan se teknikken om ikke andet!
Avatar billede henrywood Nybegynder
05. august 2002 - 17:35 #4
Har selv fundet ud af det. Jeg smider koden op senere !
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester