Forum und email

readdir

(PHP 4, PHP 5)

readdir — lees een entry uit een directory handle

Beschrijving

string readdir ( resource $dir_handle )

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

Let erop op welke manier de return value van dir() wordt gecontroleerd. Je moet expliciet testen of de return value identiek is aan (gelijk is en van hetzelfde type is -- zie Vergelijkings operators voor meer informatie) FALSE omdat anders een directory entry dat evalueert als FALSE de loop zal stoppen (b.v. door een directory genaamd "0").

Example#1 Druk een lijst af van alle bestanden in de huidige directory

// Merk op dat !== niet bestond tot 4.0.0-RC2
<?php
if ($handle opendir('/path/to/files')) {
    echo 
"Directory handle: $handle\n";
    echo 
"Files:\n";

    
/* Dit is de juiste manier om door een directory te wandelen. */
    
while (false !== ($file readdir($handle))) { 
        echo 
"$file\n";
    }

    
/* Dit is de VERKEERDE manier om door een directory te wandelen. */
    
while ($file readdir($handle)) { 
        echo 
"$file\n";
    }

    
closedir($handle); 
}
?>

Let erop dat readdir() ook de . en .. bestanden teruggeeft. Als je deze niet wilt, verwijder ze dan simpel:

Example#2 Druk alle bestanden behalve . en .. af in de huidige directory.

<?php 
$handle
=opendir('.'); 
while (
false!==($file readdir($handle))) { 
    if (
$file != "." && $file != "..") { 
        echo 
"$file\n"
    } 
}
closedir($handle); 
?>