Ordnerinhalte anzeigen; Nur bestimmte Dateitypen
Frodo
- php
0 Viennamade0 Dieter Raber0 Tom
Wie kann ich dieses Script ändern, dass das nur txt, html, php, jpg und endungslose Dateien angezeigt werden?
<?php
$ordner = "./eingang";
$handle = opendir($ordner);
while ($file = readdir ($handle)) {
if($file != "." && $file != "..") {
if(is_dir($ordner."/".$file)) {
echo "/".$file."<br/>";
} else {
// kompletter Pfad
$compl = $ordner."/".$file;
echo " <a href="".$compl."">".$file."</a><br/>";
}
}
}
closedir($handle);
?>
Das muss, so glaube ich, irgentwie mit if und einem subst. gehen.
ABER WIE????
[/Danke]
Hallo!
Wie kann ich dieses Script ändern, dass das nur txt, html, php, jpg und endungslose Dateien angezeigt werden?
Du könntest Dir http://at2.php.net/manual/de/function.pathinfo.php zunutze machen, oder aber mit string-funktionen arbeiten. Letzteres ist performanter, denke ich.
Mit http://at2.php.net/manual/de/function.strrpos.php kannst Du den Punkt ausfindig machen, welcher die extension vom Dateinamen trennt.
Mit http://at2.php.net/manual/de/function.strrchr.php kannst Du die Extension ausgeben.
Beste Grüße
Viennamade
Hallo,
Stimmt, es geht u.a. mit substr und zwar so:
$ext = array('txt', 'html', 'php', 'jpg');// enthaelt die gueltigen Endungen
if(in_array(strtolower(substr(strrchr($file, '.'),1)),$ext))
{
echo '/' . $file . "<br/>\n";
}
Der Reihe nach:
Bleiben noch die endungslosen Dateien, die sich ja dadurch auszeichen, dass sie keinen Punkt enthalten. Hier hilft strpos:
Das war's, hoffentlich stimmen meine Klammern alle.
Dieter
Hello,
Wie kann ich dieses Script ändern, dass das nur txt, html, php, jpg und endungslose Dateien angezeigt werden?
while ($file = readdir ($handle)) {
Das ist sowieso falsch, weil an der Datei mit dem namen '0' die Sache vorbei ist.
Die richtige Schleifenbedingung heißt
while(false!==($file = readdir($dirhandle)))
{
}
Und schau Dir mal die Funktion glob() an.
http://de2.php.net/manual/de/function.glob.php
Harzliche Grüße aus http://www.annerschbarrich.de
Tom