PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Order auf Inhalt prüfen


hoschy
11.11.2005, 11:06:28
Moinsen,

ich möchte mein Galeriescript in sofern erweitern, das der User beliebig viele Ordner mit
oder ohne Unterverzeichnissen in das Hauptverzeichnis ablegen kann. Das Auslesen des Hauptverzeichnisses und etwaiger Verzeichnisse klappt ja, nur die Abfrage wenn in
anstelle von Ordnern Bilder sind nicht.

Hier mal der Quelltext für die Startseite:
<?php
//Einlesen des Hauptverzeichnisses
$handle = dir('.');
//Liste der zu ignorierenden Dinge
$list_ignore = array ('.','..','index.php','pictures.php','bilder.inc.php','bilder.php');
echo "<ul class=\"gal-lst\">";
//Ausgabe der enthaltenen Ordnern incl. verlinkung zur Anzeige
while ($var = $handle->read()) {
if(!in_array($var,$list_ignore)) {
echo "<li><a href=\"?site=pictures&id=".urldecode($var)."\">".$var."</a></li>";
}
}
?>

Und hier das Script, was für das Einlesen bzw. Anzeige des Ordnerinhaltes zuständig ist:

<?php
//Zuweisung des Übermittelten Verzeichnisnamen
$var = $_GET['id'];
$dirname = dir($var);
$list_ignore = array ('.','..','thumbs','index.php');
echo "<b>".$var."</b>";
echo "<ul class=\"gal-lst\">";
while ($file = $dirname->read()) {
//Wenn Unterverzeichnisse existieren nur diese anzeigen
if(!in_array($file,$list_ignore) && !is_dir($file)) {
$handle = chdir($file);
echo "<li><a href=?site=pictures2&id=".urldecode($handle)." target=\"_self\">".$handle."</a>&nbsp;</li>";
//Wenn keine Unterverzeichnisse existieren Bilder anzeigen
}elseif(!in_array($file,$list_ignore)){
echo "<li><a href=\"javascript:OpenNewWindow('".$file."',550,320)\" target=\"_self\"><img src=".$file."></a>&nbsp;</li>";
//Wenn Ordner leer
}
}

?>
</ul>


Allerdings macht chdir() auch zicken.
Warning: chdir() [function.chdir]: No such file or directory (errno 2) in /galerie/pictures.php on line 52#

Unreal
11.11.2005, 11:50:39
Hallo hoschy!

Möchtest Du von einem bestimmten Verzeichnis aus, alle darunterliegenden Ornder und Dateien auslesen?
Wenn ja, dann schau dir mal diesen Forumsbeitrag an: http://selfphp.de/forum/showthread.php?t=10280


Gruß Unreal

hoschy
12.11.2005, 01:29:56
Hallo hoschy!

Möchtest Du von einem bestimmten Verzeichnis aus, alle darunterliegenden Ornder und Dateien auslesen?
Wenn ja, dann schau dir mal diesen Forumsbeitrag an: http://selfphp.de/forum/showthread.php?t=10280


Gruß Unreal


Es soll vorher noch eine Überprüfung stattfinden ob es nur ein Ordner mit Unterverzeichnissen ist oder ob in dem Ordner nur Bilder sind.

Wenn es nur Bilder sind, sollen diese angezeigt werden, wenn nicht, sollen die vorhandenen Unterordner als Links ausgegeben werden, damit man dann halt durch anklicken diese öffnen und deren Inhalt anzeigen kann.

So in dem Beispiel:

Ordner1 enthält bilder
Ordner2 enthält anzahl x an unterverzeichnissen die wiederum anzahl x an Bildern enthalten (Ausgabe der Unterordner als links)

meikel (†)
12.11.2005, 04:04:58
Allerdings macht chdir() auch zicken.
Verständlich.

PHP will Pfade so haben:
relativ
./verzeichnis/dateiname.ext
../verzeichnis/dateiname.ext

absolut
/home/user_fritze/public_html/verzeichnis/dateiname.ext

Die Zeile while ($var = $handle->read()) liefert Dir aber keinen Pfad sondern nur den Bezeichner/Namen/Zeichenkette des jeweiligen Verzeichniseintrages.

if (is_dir('verzeichnis')) ist immer falsch.
if (is_dir('./verzeichnis')) ist nur dann falsch, wenn ]./verzeichnis [/B] kein Verzeichnis ist.

Das eben gesagte gilt gleichermaßen für is_file(), file_exists() usw.
Viele Fehler beim Include/Require basieren ebenfalls darauf.

hoschy
12.11.2005, 17:52:06
hm..
und wie kann ich nun prüfen lassen ob ein Verzeichnis noch weitere Verzeichnisse enthält oder nur dateien?

meikel (†)
12.11.2005, 19:38:36
Hinweise satt, aber nu das:
hm..
und wie kann ich nun prüfen lassen ob ein Verzeichnis noch weitere Verzeichnisse enthält oder nur dateien?
Huch? Beseitige einfach den Fehler.