mappen in een directory lezen

Status
Niet open voor verdere reacties.

bn2vs

Terugkerende gebruiker
Lid geworden
18 aug 2007
Berichten
1.705
Ik wil een pagina die een lijst met alle mappen in een directory weergeeft. Hoe doe ik dit?

Alvast bedankt :)
 
Volgens mij is er een programmaatje (PrintFolder geloof ik) waar je alle (sub)mappen mee zichtbaar maakt in een bepaalde directory.
Of het nog bestaat/gratis is weet ik niet.

En misschien een registeraanpassing zodat alle (sub)mappen worden geopend als je op een map klikt, geen idee of dat er wel is ....
 
Deze code geeft de directories en files weer in een bepaalde directory:

PHP:
$path = '../path/to/';

$dh = opendir($path);
echo "<br>Directories <br>************************* <br>";
  while (($dir = readdir($dh)) !== false) {
       if ( $dir != "." && $dir != ".." ){
           $file = @fopen("$path/$dir", "r");
                if (!$file){
                     echo "$dir<br>";
                 }
       }
  }
 closedir($dh);
echo "<table border=0>";
 $dh = opendir($path);
echo "<br>Files <br>************************* <br>";

  while (($dir = readdir($dh)) !== false) {
       if ( $dir != "." && $dir != ".." ){
           $file = @fopen("$path/$dir", "r");
                 if ($file){
	        
        echo "<tr><td>$dir\n";
   } 
      
   }
   
}
closedir($dh);
 
Ok, dit werkt perfect, thnx voor de hulp :D

PHP:
	echo "<u>overview</u><br />"; 
	$dh = opendir("path"); 

	while ($dir = readdir($dh))
		{ 
		if ($dir != "." && $dir != "..")
			{ 
			$file = @fopen("$path/$dir", "r"); 
			if (!$file)
				{ 
				echo "$dir<br />"; 
				} 
			} 
		} 

	closedir($dh);
 
Is er een eenvoudige manier om de directories in alfabetische volgorde te lezen? Of moet ik alle dirs in een array stoppen en die dan sorten als ik de hele zooi alfabetisch wil hebben?
 
Is er een eenvoudige manier om de directories in alfabetische volgorde te lezen? Of moet ik alle dirs in een array stoppen en die dan sorten als ik de hele zooi alfabetisch wil hebben?

da laatste is (ben ik bang) de enige oplossing... alles in een array proppen en sorteren...

OF je moet gebruik gaan maken van de functie "Scandir" <-- link
Daar kun je als parameter de sorteer volgorde instellen (standaard alfabetisch!)

Let wel op dat scandir NIET te gebruiken is in combinatie met PHP 4 of lager... je zult dus PHP 5 op je servertje moeten hebben staan!

M.v.g.
JB'tje

Note: Je snapt hopelijk dat het bovenstaande scriptje alleen één sublaag aankan. Dus als je een file, in een map, in een map, in een map hebt staan, dan zal hij die niet vinden.....
Om een beter overzicht te krijgen moet je een functie maken (met scandir?) en elke keer dat je een dir tegenkomt de functie opnieuw aanroepen...
voorbeeld:
PHP:
<?PHP
// De functie deltree verwijderd alle bestanden in de opgegeven map, en als laatst de map zelf.
function deltree( $f )
{
// Kijken of een een map opgegeven is, of een file.
  if( is_dir( $f ) )
  {
  // Kijken wat er allemaal in de map staat.
    $dir = scandir( $f );
    foreach( $dir AS $item )
    {
    // Als het niet de map "." en ".." is, dan doorgaan. Anders deze functie afbreken.
      if( !strcmp( $item, '.' ) || !strcmp( $item, '..' ) )
        continue;
    // Zichzelf aanroepen, om het bestand in de map (of de map in de map) te verwijderen.
      deltree( $f . "/" . $item );
    }
    // De opgegeven map verwijderen.
    rmdir( $f );
  }else{
    if(is_file( $f ))
    {
    // Het gevonden bestand verwijderen.
      unlink( $f );
} } }
?>
 
Laatst bewerkt:
Ik heb momenteel php 4, dus dat zal niet gaan :(

Toch bedankt voor de hulp :D
 
wellicht kun je de hoster vragen om php 5 ook te installeren.. deze kunnen beiden geinstalleerd worden (op een server), mist ze maar op de goede manier aangeroepen worden (door b.v. gebruik te maken van .php5 als extensie)

Als je het op je eigen server hebt, is het een kwestie van tijd :P

M.v.g.
JB'tje
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan