Entwickler-Ecke
Programmiersprachen (Server) - Gibt es ein unbekanntes Unterverzeichnis?
Gerhard_S - Mi 14.07.10 00:57
Titel: Gibt es ein unbekanntes Unterverzeichnis?
Hallo,
wie finde ich mit php heraus, ob ein Verzeichnis ein Unterverzeichnis hat? Der Name des Unterverzeichnisses ist unbekannt.
Ich habe es versucht mit
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| <?php error_reporting(E_ALL); $filename = '.'; if (file_exists($filename)) { echo "The file $filename exists"; } else { echo "The file $filename does not exist"; } ?> |
aber das liefert mir immer ein positives Ergebnis, auch wenn gar kein Unterverzeichnis existiert.
Was nun?
Moderiert von
Christian S.: Topic aus Delphi4PHP-Technologien verschoben am So 15.07.2012 um 13:17
BenBE - Mi 14.07.10 01:44
scan_dir und is_dir ... HTH.
Flamefire - Mi 14.07.10 11:55
BTW: "." ist der alias für das aktuelle verzeichnis. Das existiert logischerweise immer.
Gerhard_S - Mi 14.07.10 13:32
Den langen Weg habe ich durch mehrstündiges Herumprobieren selbst herausgefunden:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| <?php $dir = dirname(__FILE__); $files1 = scandir($dir.'../'); $count="0"; for($i=0; $i < count($files1); $i++) { if ((is_dir($files1[$i])) and ($files1[$i] != '.') and ($files1[$i] != '..')) { echo "UVZ namens: ".$files1[$i]." gefunden."; $count=$count+1; } } echo "Es gibt ".$count." Unterverzeichnisse."; ?> |
Vielleicht kennt jemand doch eine Funktion, die das ganze auf ein oder zwei Zeilen Code reduziert?
BenBE - Mi 14.07.10 14:38
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| <?php $dir = dirname(__FILE__); $files = scandir($dir.'../');
$dirs = array(); array_walk($files, function($v, $k, $u) { if(is_dir($u.$v) && !in_array($v, array('.', '..'))) { $dirs[] = $v; } }, $dir); $count=count($dirs);
echo "Es gibt ".$count." Unterverzeichnisse."; ?> |
Heiko - Do 15.07.10 21:43
Oder verständlicher:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| <?php $dir = dirname(__FILE__); $files = scandir($dir.'../');
$dirs = array(); foreach ($files as $file) { if (is_dir($file) && !in_array($file, array('.', '..'))){ $dirs[] = $file } }
echo "Es gibt ".count($dirs)." Unterverzeichnisse."; ?> |
PS: liefert dirname nicht eigehntlich einen Ordner ohne "/" am Ende zurück?
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!