dclp FAQ

FAQ der Newsgroups de.comp.lang.php.*

 
  • Increase font size
  • Default font size
  • Decrease font size

Häufig benötigte Codeschnipsel

Wie kann ich den Inhalt eines Verzeichnisses samt dem Inhalt aller Unterverzeichnisse ausgeben?

E-MailDruckenPDFLesezeichen anlegen: Du musst dich einloggen um ein Lesezeichen für diesen Beitrag anzulegen. Es wird deiner persönlichen Lesezeichenliste hinzugefügt.

Um nicht nur den Inhalt des aktuellen Verzeichnisses, sondern auch den Inhalt aller Unterverzeichnisse ausgeben zu können, muss man eine rekursive Funktion verwenden. Diese ruft sich bei Bedarf selbst auf. Im nachfolgenden Beispiel durchläuft die Funktion show_dir jeweils das aktuelle Verzeichnis. Wird Datei gefunden, wird der Dateiname ausgegeben. Findet die Funktion ein Verzeichnis, dann wird der Verzeichnisname fett ausgegeben und die Funktion ruft sich mit dem Unterverzeichnis als Parameter selbst wieder auf.

<?php
 
function show_dir( $dir, $pos=2 )
{
    if ( $pos == 2 ) {
        echo "<hr /><pre>";
    }
 
    $handle = @opendir( $dir );
    if ( is_resource( $handle ) ) {
        while ( ( $file = readdir( $handle ) ) !== false ) {
            if ( preg_match( '~^\.{1,2}$~', $file ) ) {
                continue;
            }
 
            if ( is_dir( $dir.$file ) ) {
                printf( "% ".$pos."s <b>%s</b>\n", '|-', $file );
                show_dir( $dir.$file.'/', $pos + 3 );
            } else {
                printf( "% ".$pos."s %s\n", '|-', $file );
            }
        }
        closedir($handle);
    }
 
    if ( $pos == 2 ) {
        echo "</pre><hr />";
    }
}
 
show_dir( 'special/' );
 
?>
Wie kann ich den Inhalt eines Verzeichnisses samt dem Inhalt aller Unterverzeichnisse ausgeben?
http://www.php-faq.de/q-code-verzeichnis.html
 

dclp FAQ


Login