Index mit Hyperlinks automatisch (dynamisch) erstellen?
JSchaedler
- php
0 ChrisB0 JSchaedler0 ChrisB
Hallo, selfhtmler!
Ich bin ein php-"Noob" und bräuchte mal eine kleine Hilfestellung: für meine Bandwebsite habe ich eine Art "database" online gestellt, wo Pressetexte, mp3s, Videos, Fotos etc heruntergeladen werden können. Zumindest in der Theorie. Praktisch würde ich gerne einen php-Schnipsel schreiben, der sein Verzeichnis durchsucht und alle darin enthaltenen Dateien und Unterverzeichnisse als Hyperlink ausgibt. Also in Pseudo etwa so:
Hallo Welt.
Durchsuche das Verzeichnis.
Wenn (keine Dateien und gefunden wurden)
sag: "Keine Dateien oder Ordner".
Sonst: ausgabe <a href="datei.dat">datei.dat</a>
(Vielleicht sogar mit Größe in MB, aber das ist nur ein Gimmick.)
ausgabe <a href="../index.htm">zurück</a>
Es gibt immer entweder Unterverzeichnisse oder Dateien, beides kommt nicht vor (falls das irgend etwas leichter macht).
Als jemand, der mal java gelernt hat (ist laaange her :)) stell ich mir das eigentlich ganz einfach vor, aber ich habe mich mit php-Syntax einfach noch nie befasst, deshalb frag ich. Es wäre super, wenn jemand einen Tipp für mich hätte, wie sich sowas umsetzen lässt!
Vielen Dank und viele Grüße
Julian
Hi,
Praktisch würde ich gerne einen php-Schnipsel schreiben, der sein Verzeichnis durchsucht und alle darin enthaltenen Dateien und Unterverzeichnisse als Hyperlink ausgibt. Also in Pseudo etwa so:
Ein Beispiel, das alle Dateien und Unterverzeichnisse rekursiv ausliest:
http://www.php-faq.de/q/q-code-verzeichnis.html
(Auf den rekusriven Aufruf kannst du ja dann verzichten, wenn du den nicht brauchst.)
Als jemand, der mal java gelernt hat (ist laaange her :)) stell ich mir das eigentlich ganz einfach vor, aber ich habe mich mit php-Syntax einfach noch nie befasst, deshalb frag ich.
http://www.php.net/manual/en/ref.dir.php
http://www.php.net/manual/en/ref.filesystem.php
http://www.php.net/manual/en/ref.url.php
sind Manualseiten, die fuer dein Vorhaben auch einen Blick wert waeren.
MfG ChrisB
Hi!
Vielen Dank für deine Links! Der Code von php-faq.de bewirkt bei mir allerdings gar nichts. Lediglich die beiden <echo>-Befehle mit den Haarlinien werden ausgeführt. Merkwürdig. Müssen dafür Serverseitig bestimmte Rechte vergeben sein?
Jetzt versuch ich mich halt wohl mal an den Manuals. :)
Gruß Julian
So, jetzt hab ich mit lieber Müh und Not was zusammengebastelt gekriegt von dem ich angenommen hatte dass es funktionieren würde - tut es aber nicht. :) Hat jemand ne Idee?
<?php
$dirName = './';
$handle = opendir($dirName);
$file = '';
while(($file = readdir($handle)!=''){
if($file!='..' && $file != '.'){
$extension = substr($file,strrpos('.',$file));
$size = filesize($dirname.'/'.$file);
echo '<a href="'.$dirname.'/'.$file.'">'$file.' ('.($size/1024).'kB)</a><br />';
}
}
closedir($handle);
?>
Danke euch!
Julian
Hi,
So, jetzt hab ich mit lieber Müh und Not was zusammengebastelt gekriegt von dem ich angenommen hatte dass es funktionieren würde - tut es aber nicht. :) Hat jemand ne Idee?
Da fehlen leider jegliche Fehlerbehandlungen bsz. Erfolgskontrollen. Zusammen mit unguenstig eingestelltem error_reporting (sollte auf E_ALL sein) ergibt das dann im Zweifelsfalle gar keine Ausgabe.
$dirName = './';
$handle = opendir($dirName);
Hier z.B. solltest du anhand des Rueckgabewertes pruefen, ob das "Oeffnen" des Verzeichnisses ueberhaupt geklappt hat.
while(($file = readdir($handle)!=''){
Der Rueckgabewert von readdir sollte, beschreibt das Manual zur Funktion auch, mittels === auf false abgeprueft werden. Denn sonst kommt es zu Fehlern bei anderen moeglichen Werten (hier: Dateinamen), die PHP mit seiner laschen Typ-Konvertierung ebenfalls als false interpretieren koennte.
MfG ChrisB