Tutorials

Directory's uitlezen in PHP 5

PHP 5 biedt nieuwe mogelijkheden tot het uitlezen van mappen, namelijk via OOP

Pagina 1

Hoe deden we dat ook al weer: opendir()

een terugblik op PHP 4

Waarschijnlijk heb je er al eens mee te maken gehad. Je moest de bestanden in de directory hebben. Kortom je kwam terecht bij de functie [php]opendir()[/php] en [php]closedir()[/php].

Om precies te zijn ging dat zo:
<?php
  // Openen
  $current_dir = opendir($dir);
  // Doorlopen
  while($entryname = readdir($current_dir))
  {
    // Controlleren of het niet . of .. is
    if($entryname != "." and $entryname!="..")
    {
      echo $entryname . "\r\n";
    }
  }
  // Sluiten
  closedir($current_dir);
?>


Vervolgens werden er structuren met is_dir() en is_file() toegevoegd.

Volgens sommige onnodig moeilijk daarom schept PHP 5 nieuwe mogelijkheden doormiddel van OOP; Geboren is DirectoryIterator(dir)
Pagina 2

Kort voorbeeld hoe het kan met PHP 5

<?php
  // Openen
  $dir = new DirectoryIterator('.');
  // Doorlopen
  foreach ($dir as $file)
  {
    echo $file."\r\n";
  }
?>

Om nu te controleren of het een . of .. is gebruiken we de methode isDot()
<?php
  // Openen
  $dir = new DirectoryIterator('.');
  // Doorlopen
  foreach ($dir as $file)
  {
    if (! $file->isDot())
    {
      echo $file."\r\n";
    }
  }
?>

Maar er kan meer.
Pagina 3

Methodes

Hieronder vindt je een lijstje met methodes die beschikbaar zijn:

getPath()
geeft terug: string
Geeft het pad terug dat geopend is.

getFilename()
geeft terug: string
Geeft alleen de bestandsnaam terug (dus zonder eventueel pad)

getPathname()
geeft terug: string
Geeft het volledige pad en de bestandsnaam terug

isDir()
geeft terug: boolean
Bij een directory geeft deze methode true

isDot()
geeft terug: boolean
Bij een . of .. geeft deze methode true

Er zijn nog veel meer methodes beschikbaar, de documentatie is echter op dit moment erg schaars:
Overzicht: http://nl3.php.net/manual/nl/ref.spl.php





Actuele versie is altijd te vinden op mijn eigen site: http://webmakerij.markei.nl/artikelen/directorys_uitlezen_in_php5.php

Reacties

0
Nog geen reacties.