In diesem Tutorial möchte ich ihnen erklären, wie sie mit PHP ein Verzeichnis ausgeben können. Ich habe mich dafür entschlossen, dieses Tutorial zu schreiben, da die ein oder andere Frage in unserem Forum zu diesem Thema geschrieben wurde.
Nachfolgend finden sie ein Code Beispiel, womit sie das Verzeichnis mit allen Dateien und Ordner ausgeben können. Wenn ein Ordner ausgegeben wird, wird dieser automatisch verlinkt. Sobald man auf diesen Link klickt, wird der entsprechende Ordner geladen. Die Dateien werden auch verlinkt, wenn man aber auf diese klickt, werden diese angezeigt.
Beispiel:
<?php
/*
* Created on 24.11.2009 by Nico Schubert
* @ php-space.info
*/
/**
* Als Erstes ermitteln wir die
* Adresse, wo das Script derzeit
* liegt
*/
$url = 'http://'.$_SERVER['HTTP_HOST'].
dirname($_SERVER['PHP_SELF']);
/**
* Danach prüfen wir mit der
* PHP Funktion isset(), ob die
* Variable $_GET['dir'] gesetzt
* ist. Sollte dies nicht der
* Fall sein, ermitteln wir mit
* der globalen Variable $_SERVER
* in Verbindung mit der PHP
* Funktion dirname() den absoluten
* Pfad.
*/
if (!isset($_GET['dir'])) $_GET['dir'] =
$_SERVER["DOCUMENT_ROOT"].dirname($_SERVER['PHP_SELF']).
'/';
/**
* Nun öffnen wir den Verzeichnis-Handles
* mit der PHP Funktion opendir() und
* speichern in der Variable $fp die
* Verzeichnis-handle resource.
*/
$fp = opendir ($_GET['dir']);
/**
* Jetzt verwenden wir die Variable
* $fp um mit der PHP Funktion readdir()
* die Verzeichnis-handle resource
* auszulesen und zu speichern in
* der Variable $file
*/
while (false !== ($file = readdir($fp))) {
/**
* Nachdem wir den Dateinamen
* genauer gesagt Ordnernnamen
* in der Variable $file gespeichert
* haben, verwenden wir die PHP-Funktion
* is_file() um herauszufinden
* ob es sich um einen Ordner
* oder Datei handelt.
*/
if (is_file($_GET['dir'].'/'.$file)) {
/**
* Wenn die PHP-Funktion is_file()
* ein True zurückliefert, ist
* es eine Datei. Diese Datei geben
* wir mit den echo Befehl aus.
*/
echo '<a href="'.$url.'/'.$file.
'">'.$file.'</a><br>';
} else {
/**
* Sollte die Funktion is_file()
* ein false zurückliefern,
* ist in der Variable $file
* einen Ordner hinterlegt.
* Diesen geben wir über die
* PHP-Funktion echo aus.
*/
echo '<a href="?dir='.$_GET['dir'].
$file.'/">'.$file.'</a><br>';
}
}
/**
* Als letzten Schritt, nach
* dem wir unsere Schleife abgearbeitet
* haben, schließen wir mit der PHP
* Funktion closedir() das Verzeichnis-Handles.
*/
closedir($fp);
?>
Funktionen, die im Beispiel verwendet wurden:
if Anweisung – Hiermit können sie verschiedene Fälle prüfen.
echo – Hier wird ihnen erklärt, wie sie mit der PHP Funktion echo einen Text oder Variable ausgeben.
isset() – Prüfen einer PHP Variable.