Webstatt.org - Community seit 2006 - 2012 (2024?)

Array-Einträge ohne Punkt ausgeben

user-227
30.01.2008 20:58

Hallo zusammen, ich hab folgendes Problem:
Ich will von den filenames die im array $files gespeichert sind nur diejenigen ausgeben die keinen punkt enthalten, also alle ordner.

Hab auch versucht das Problem mit is_dir zu lösen nur leider hat das nicht so geklappt wie ich wollte.

Wär cool wenn einer da ne idee hätte,

gruß user-227



$dir = 'bereiche/verwaltung/';

if($handle = opendir($dir)){
echo '<h2>verzeichnis geöffnet</h2>';
}
else {
echo '<h1>verzeichnis konnte nicht geöffnet werden</h1>';
exit();
}

while (false !== ($filename = readdir($handle))) {
$files[] = $filename;
}

sort($files);

print_r($files);


Avatar user-162
30.01.2008 21:17

müsste so gehen:

$dir = 'bereiche/verwaltung/';

if($handle = opendir($dir)){
echo '<h2>verzeichnis geöffnet</h2>';
}
else {
echo '<h1>verzeichnis konnte nicht geöffnet werden</h1>';
exit();
}

while (false !== ($filename = readdir($handle))) {
if(!is_dir($dir.$filename)) $files[] = $filename;
}

sort($files);

print_r($files);

Perfection is not when there’s nothing to add, but when there’s nothing to take away swisscheek.com/magazine
Avatar user-300
30.01.2008 22:39

Mit glob() und dem Flag GLOB_ONLYDIR geht das viel einfacher zwinkern

user-227
31.01.2008 11:25

danke schön user-300!
genau sowas hab ich gesucht, mit is_dir hat es leider nicht funktioniert.

habs jetzt so gemacht:



foreach((glob($dir."*", GLOB_ONLYDIR)) as $filename) {
$files[] = $filename;
}

print_r($files);


Avatar user-300
31.01.2008 13:12

Das geht noch kürzer:

chdir($dir);
$files = glob('*', GLOB_ONLYDIR);
print_r($files);


Durch die Verwendung werden nur die Namen der Verzeichnisse aber nicht deren Pfad ausgegeben zwinkern

user-227
31.01.2008 15:56

ist ja auch nicht die komplette anwendung, aber ich hab jetzt was womit ich weiter arbeiten kann zwinkern