Toon posts:

[PHP] Alfabetisch dir inlezen

Pagina: 1
Acties:
  • 36 views sinds 30-01-2008

Verwijderd

Topicstarter
Ik lees een dir in met onderstaand script. Waarom krijg ik eerst de dir Instellingen en pas daarna Beheerders?

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<?php
function showModules(){
    
    if ($handle = opendir(MODULES_SERVER_PATH)){

        $return .= "\n<ul id=\"nav\">\n";
        while (false !== ($file = readdir($handle))){
            
            $datafile         = MODULES_SERVER_PATH . "/" . $file . "/data.php";
            $indexpath         = MODULES_SERVER_PATH . "/" . $file;
            $webindexfile     = MODULES_PATH . "/" . $file . "/index.php";
            
               if($file != "." && $file != ".." && file_exists($datafile)){

                unset($mod_name, $mod_desc, $mod_sub);

                include($datafile);
                
                $return .= "\t<li><a href=\"" . $webindexfile . "\" title='$mod_desc'>$mod_name</a>\n";
                if(isset($mod_sub) && is_array($mod_sub)){
                    $return .= "\t\t<ul>\n";
                    foreach($mod_sub as $sub){
                        $return .= "\t\t\t<li><a href='" . MODULES_PATH . "/" . $file . "/" . $sub['link'] . "'>" . $sub['title'] . "</a></li>\n";
                    }
                    $return .= "\t\t</ul>\n";
                }
                $return .= "\t</li>\n";
            }
        }

        closedir($handle); 
        $return .= "</ul>\n";
    }

    if(!$return){
        $return = "Geen modules geinstalleerd.";
    }

    return $return;
}
?>

Verwijderd

Dit komt van php.net van de pagina over readdir, het is een post van een php gebruiker:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?
           if ($dir = @opendir("products")) 
           {
               while (($file = readdir($dir)) !== false) 
               {
                   if($file != ".." && $file != ".")
                   {
                       $filelist[] = $file;
                   }
               } 
               closedir($dir);
           }
           ?>
<form>
           <select name="selected_dir" >
           <?php 
           asort($filelist);
           while (list ($key, $val) = each ($filelist)) 
           {
               echo "<option>$val</option>";
           }
           ?>
            </select>
</form>


Je kunt dit zelf wel naar jouw situatie converteren...

Ik denk dat het niet mogelijk is de volgorde anders te bepalen:
php.net
readdir

...

Geeft de bestandsnaam van het volgende bestand in de directory. De bestandsnamen worden teruggegeven in de volgorde waarin ze zijn opgeslagen in het bestandssysteem.

[ Voor 62% gewijzigd door Verwijderd op 15-06-2004 14:35 ]


Verwijderd

Topicstarter
Okee, dank je wel. Om eerlijk te zijn heb ik in mijn luiheid niet naar de manual gekeken, omdat ik er van uit dat ging dat de volgorde wel de alfabetische zou zijn. Het werkt!

  • RM-rf
  • Registratie: September 2000
  • Laatst online: 12:28

RM-rf

1 2 3 4 5 7 6 8 9

je kunt de dirs toch wel in een array opslaan en via sort() de volgorde bepalen?

edit: laat

overigens Erik-Jan, kijk de volgende keer eerst eens een beetje rond in manuals e.d. alvorens een vraag te stellen op het forum, vragen stellen uit luiheid wordt hier niet op prijs gesteld.

[ Voor 57% gewijzigd door RM-rf op 15-06-2004 14:40 ]

Intelligente mensen zoeken in tijden van crisis naar oplossingen, Idioten zoeken dan schuldigen


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 12-05 22:23

curry684

left part of the evil twins

RM-rf schreef op 15 juni 2004 @ 14:39:
overigens Erik-Jan, kijk de volgende keer eerst eens een beetje rond in manuals e.d. alvorens een vraag te stellen op het forum, vragen stellen uit luiheid wordt hier niet op prijs gesteld.
Dit wil ik graag nog even onderschrijven voor ik er een hangslot op zet ;)

Lees aub http://gathering.tweakers.net/forum/faq en P&W Beleid even door :)

Professionele website nodig?


Dit topic is gesloten.