Avatar billede mahuni Nybegynder
03. januar 2005 - 21:50 Der er 7 kommentarer og
1 løsning

Finde php filer i en mappe og linke til dem.

Ohøj

Jeg har lavet et administrationssystem, men efterhånden som jeg tilføjer nye sider synes jeg det ville være smart hvis de automatisk kom med i menuen. JEg ved dette kan lade sig gøre ved hjælp af mysql, men hvordan laver man et script der finder php-filer (som evt indeholder en speciel streng for at angive at det er en fil der skal med i menuen) og derefter udskriver link til dem?

Filerne ligger i en mappe
Avatar billede mccookie Seniormester
03. januar 2005 - 22:35 #1
<?php

$filelist = array(); // Array difeneres
           
        if ($handle = opendir('/usr/local/psa/home/vhosts/strandboerne.dk/httpdocs/gruppeweekend2002/randimage/')) {
               
            while (false !== ($file = readdir($handle))) {
                 
              if ($file != "." && $file != ".." && preg_match('/.jpg/i',$file)) {
           
                $filelist[] = $file; }}
                closedir($handle); }
   
            // Antallet af billeder tælles op
                 
            $maxpic =  sizeof($filelist);
            $picnum = $maxpic + 1; // Der lægges én til, da et array altid starter på 0

        echo $picnum;
           
                     
                   
                               
                ?>     

Det her script brugte jeg til at finde alle billeder i en mappe og derefter lægge dem ind i et array og derefter hente dem herfra......

Måske noget ala en idé du kan bruge....
Avatar billede darkcow Nybegynder
04. januar 2005 - 10:29 #2
Denne kode skal ligge i en fil i samme mappe som den mappe du vil liste indholdet af:

<?php
        $dirPath = "foo";
    $dirHandler = opendir($dirPath);
    while(($filename = readdir($dirHandler)) != false)
    {
        if($filename != "." && $filename != ".." && substr($filename,-4) == ".php")
        {
            echo "<a href=\"$dirPath/$filename\">$filename</a>";
        }
    }
?>

håber det kan bruges:)
Avatar billede darkcow Nybegynder
04. januar 2005 - 10:32 #3
btw, for det med at angive at den skal includeres i menuen, bare erstat

substr($filename,-4) == ".php")
med
substr($filename,-9) == ".menu.php"
Avatar billede mahuni Nybegynder
04. januar 2005 - 12:18 #4
Jow tak, Darkcow, vil lige prøve at kigge på det, men hvad nu hvis jeg vil læse noget af filen? Hvis der fx er defineret i toppen af filen at den er en menu-fil, altså hvis det ikke er i navnet?
Avatar billede mahuni Nybegynder
04. januar 2005 - 12:26 #5
Tænkte lige på noget mere, hvordan laver man i praksis sådan at den automatisk fjerner de sidste 4 tegn af et navn. Sådan at tilfoej.php bare bliver til tilfoej
Avatar billede darkcow Nybegynder
04. januar 2005 - 12:56 #6
<?php
        $dirPath = "autoInc";
    $dirHandler = opendir($dirPath);
    while(($filename = readdir($dirHandler)) != false)
    {
        if($filename != "." && $filename != ".." && substr($filename,-4) == ".php")
        {
            $path = "$dirPath/$filename";
            if(fread(fopen($path,"r"),4) == "menu")
            {
                echo "<a href=\"$path\">$filename</a>";
            }
            }
    }
?>

her er det med at læse fra filen, det andet kommer senere, skal gå nu..

-darkcow
Avatar billede mahuni Nybegynder
04. januar 2005 - 20:44 #7
Takker, darkcow... Det virkede og svaret på det andet spørgsmål fandt jeg selv på php.net... SMider du et svar?
Avatar billede darkcow Nybegynder
05. januar 2005 - 12:37 #8
okay.. fint.. held og lykke med det:)
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