Blade II
2007-06-09, 22:51:17
Hey ho
Ich würde gerne die Ordnerstruktur eines bestimmten Ordnerns inkl. Unterordner auslesen:
[ROOT]
+ Folder 1
+ Folder 2
+ Folder 3
| + ---- SubFolder 1
| + ---- SubFolder 2
| | -- + ---- SubSubFolder 1
| + ---- SubFolder 3
+ Folder 4
Wie realisiere ich das in PHP?
Muss ich eine eigene function schreiben, die sich dann selbst wieder aufruft? ... Wenn ja, wie mach ich sowas? :D
Hier ist ein Teil eines momentanen Auslese-Scripts, welches ich für diesen Zweck umschreiben wollte:
<?php
$dir = (empty($_GET['dir'])) ? "images/" : $_GET['dir'] . "/";
$handle = opendir($dir);
$extensions = array("jpg", "jpeg", "gif", "png");
$blacklist = array(".", "..");
while(false !== ($file = readdir($handle))) {
if (is_dir($dir.$file) and !in_array($file, $blacklist)) {
$dirs[] = $dir.$file;
chdir($file);
}
else {
$file_info = pathinfo($file);
if (in_array($file_info['extension'], $extensions)) $images[] = $dir.$file;
}
}
echo "<p><a href=\"./\">« zurück</a></p>\n";
if (!empty($dirs)) foreach($dirs as $dir) echo "<a href=\"" . getenv('PHP_SELF') . "?dir=" . $dir . "\">" . substr($dir, (strrpos($dir, "/") + 1), strlen($dir)) . "</a><br />\n";
if (!empty($images)) foreach ($images as $image) echo "<img src=\"".$image."\" /><br />\n";
closedir($handle);
?>
Ich würde gerne die Ordnerstruktur eines bestimmten Ordnerns inkl. Unterordner auslesen:
[ROOT]
+ Folder 1
+ Folder 2
+ Folder 3
| + ---- SubFolder 1
| + ---- SubFolder 2
| | -- + ---- SubSubFolder 1
| + ---- SubFolder 3
+ Folder 4
Wie realisiere ich das in PHP?
Muss ich eine eigene function schreiben, die sich dann selbst wieder aufruft? ... Wenn ja, wie mach ich sowas? :D
Hier ist ein Teil eines momentanen Auslese-Scripts, welches ich für diesen Zweck umschreiben wollte:
<?php
$dir = (empty($_GET['dir'])) ? "images/" : $_GET['dir'] . "/";
$handle = opendir($dir);
$extensions = array("jpg", "jpeg", "gif", "png");
$blacklist = array(".", "..");
while(false !== ($file = readdir($handle))) {
if (is_dir($dir.$file) and !in_array($file, $blacklist)) {
$dirs[] = $dir.$file;
chdir($file);
}
else {
$file_info = pathinfo($file);
if (in_array($file_info['extension'], $extensions)) $images[] = $dir.$file;
}
}
echo "<p><a href=\"./\">« zurück</a></p>\n";
if (!empty($dirs)) foreach($dirs as $dir) echo "<a href=\"" . getenv('PHP_SELF') . "?dir=" . $dir . "\">" . substr($dir, (strrpos($dir, "/") + 1), strlen($dir)) . "</a><br />\n";
if (!empty($images)) foreach ($images as $image) echo "<img src=\"".$image."\" /><br />\n";
closedir($handle);
?>