Avatar billede codemasterz Nybegynder
07. august 2003 - 19:16 Der er 20 kommentarer og
1 løsning

Liste over filer i mappe

Er der nogen der vil lave et script til mig, som generer en liste over de filer, der ligger i en bestemt mappe på serveren?
Avatar billede Slettet bruger
07. august 2003 - 19:20 #1
http://dk.php.net/opendir

Det hele står der. Læs også user-comments for flere eksempler.
Avatar billede hhlundgaard Nybegynder
07. august 2003 - 19:21 #2
<?php
if ($handle = opendir('web')) {
    echo "Directory handle: $handle\n";
    echo "Files:\n";

    /* This is the correct way to loop over the directory. */
    while (false !== ($file = readdir($handle))) {
        echo "$file\n";
    }

    /* This is the WRONG way to loop over the directory. */
    while ($file = readdir($handle)) {
        echo "$file\n";
    }

    closedir($handle);
}
?>
Avatar billede googolplex Novice
07. august 2003 - 19:21 #3
Noget jeg havde liggende, ved ikke om det kan bruges.

function list_filer($bibliotek) {

    if ($bib = @opendir($bibliotek)) { // Fjern evt. $_SERVER["DOCUMENT_ROOT"] */
        while (false !== ($fil = readdir($bib))) {
            if ($fil != "." && $fil != ".." && !ereg("^\..+", $fil)) {
                $fil_liste[] = "<a href=\"$bibliotek/$fil\">$fil</a>";
            }
        }   
   
        closedir($bib);
       
        if (is_array($fil_liste)) {
            $liste = "<li>" . join("</li><li>", $fil_liste) . "</li>";
        } else {
            $liste = "<li>Ingen filer p&aring; lager</li>";
        }
       
        $fil_lager = "<h2>Filer p&aring; lager:</h2><ul>" . $liste . "</ul>";

        return $fil_lager;
         
    } else {
        die("Kunne ikke &aring;bne biblioteket: " . $bibliotek);
    }
}

$bibliotek = "grafik/billeder";
echo list_filer($bibliotek);
Avatar billede hhlundgaard Nybegynder
07. august 2003 - 19:22 #4
if ($handle = opendir('web')) {

her sættes web til det dir du vil vise
Avatar billede codemasterz Nybegynder
07. august 2003 - 19:35 #5
-->hhlundgaard
Ok hvordan gør jeg, sådan så mappperne ikke bliver vist??
Og kan jeg undgå de punktumer der kommer? Og evt. lave listen med tekst, til links til filerne????
Avatar billede googolplex Novice
07. august 2003 - 19:36 #6
Brug min, den gør det ikke. OG stiller det pænt op.
Avatar billede hhlundgaard Nybegynder
07. august 2003 - 19:38 #7
googolplex ---> jeps brug hans, den spiller max
Avatar billede googolplex Novice
07. august 2003 - 19:43 #8
Det gør min faktisk også, den er fra webcafe og fungerer perfekt :)
Avatar billede hhlundgaard Nybegynder
07. august 2003 - 19:50 #9
det var faktisk din jeg mente googolplex, men det stod bare fejl.  :)
Avatar billede gonza.dk Nybegynder
07. august 2003 - 19:52 #10
en jeg lige havde liggende...

http://scripts.gonza.dk/list_dir/

<?php
$mydir        = "files/";            //Mappen filerne ligger i (husk slash (/) til sidst)
$icondir    = "icons/";            //Mappen hvor icons filerne fra apache ligger i (husk slash (/) til sidst)

if ($handle = opendir($mydir)) {
    while (false !== ($file = readdir($handle))) { 
        if ($file != "." && $file != "..") {
            //finder filens størrelse
            $filesize    = filesize($mydir.$file);
           
            //finder extension
            $pathinfo    = pathinfo($mydir.$file);
            $extension    = $pathinfo["extension"];
            $domain        = $_SERVER["HTTP_HOST"]."/";
              $extension    = strtolower($extension);

            if (($extension == 'jpg') OR ($extension == 'gif') OR ($extension == 'png') OR ($extension == 'bmp')){
            $extimage    = 'image2.gif';
            }
            else if (($extension == 'mpeg') OR ($extension == 'avi')){
            $extimage    = 'movie.gif';
            }
            else {
            $extimage    = 'unknown.gif';
            }
           
            //udskriver til skærm
            echo "<a href='#'><img src='http://".$domain.$icondir.$extimage."' title='".$extension."' border='0'></a> <a href='".$mydir.$file."'>".$file."</a> (".$filesize." bytes)<br>"; 
        } 
    }
    closedir($handle); 
}
?>
Avatar billede googolplex Novice
07. august 2003 - 19:54 #11
hhlundgaard: Hehe, det stod faktisk rigtigt nok, jeg skal bare lære at læse :P
Avatar billede codemasterz Nybegynder
07. august 2003 - 20:16 #12
Takker! Læg et svar så skal jeg acceptere! :)
Avatar billede tipsen Nybegynder
07. august 2003 - 20:38 #13
Tilføj initialisering af variabel og et par mindre rettelser (Dette fjerner bl.a. en notice fra fejlrapporteringen):

function list_filer($bibliotek) {
    $fil_liste = array();
    if ($bib = @opendir($bibliotek)) { // Fjern evt. $_SERVER["DOCUMENT_ROOT"]
        while (false !== ($fil = readdir($bib))) {
            if ($fil != "." && $fil != ".." && !ereg("^\..+", $fil)) {
                $fil_liste[] = "<a href=\"$bibliotek/$fil\">$fil</a>";
            }
        }   
        closedir($bib);
        if (count($fil_liste)>0) {
            $liste = '<li>' . join('</li><li>', $fil_liste) . '</li>';
        } else {
            $liste = '<li>Ingen filer p&aring; lager</li>';
        }
       
        return '<h2>Filer p&aring; lager:</h2><ul>' . $liste . '</ul>';
    } else {
        die("Kunne ikke &aring;bne biblioteket: " . $bibliotek);
    }
}
Avatar billede googolplex Novice
07. august 2003 - 20:41 #14
Mig ?
Avatar billede tipsen Nybegynder
07. august 2003 - 20:49 #15
Det er rettelser til din udgave, ja.
Avatar billede googolplex Novice
07. august 2003 - 20:57 #16
Jeg mente såmænd bare om det var der skulle lægge et svar :-)

Men tror alle disse mappe-oversigter tager udgangspunkt i det samme stykke kode fra php.net.
Avatar billede elskermad.dk Nybegynder
07. august 2003 - 21:15 #17
Avatar billede elskermad.dk Nybegynder
07. august 2003 - 21:16 #18
Avatar billede elskermad.dk Nybegynder
07. august 2003 - 21:17 #19
Avatar billede googolplex Novice
07. august 2003 - 21:59 #20
Takker for point :)
Avatar billede codemasterz Nybegynder
07. august 2003 - 22:04 #21
Selv tak! :)
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