is_dir, is_file: mal gehts, mal nicht :-(

faron

Grünschnabel
Bin ich blind oder doof, ich habe mit kleinen Abwandlungen zweimal dasselbe getippt und einmal gehts nicht:

Zuerst lese ich Verzeichnisse in ein array um sie dann weiterzubearbeiten (auf ner Skripteseite abgeschrieben und GEHT):

$f1_dir = opendir('.');
while ($dir = readdir ($f1_dir)) {
#!!! jetzt kommt die Interessante Zeile!!!
# nur Verzeichnisse beachten, hier gehts
if ($dir != "." && $dir != ".." && is_dir ($dir)) {
$list_dir[] = "$dir";
}
}

closedir ($f1_dir);

Dann will ich in ner Schleife aus all diesen Verzeichnissen nur die Dateien auslesen (***** NICHT!):

foreach ($list_dir as $eindir) {
unset ($list_file);
$f2_dir = opendir($eindir);
while ($file = readdir ($f2_dir)) {
#!!! jetzt kommt die Interessante Zeile!!!
# nur Dateien beachten, hier gehts NICHT,
# es werden auch Verzeichnisse gelistet
if ($file != "." && $file != ".." && is_file ($file)) {
$list_file[] = "$file";
}
}
}
closedir ($f2_dir);

Ich hoffe, ich hab beim copy&paste nichts durcheinandergebracht, also ne geschweifte Klammer zuviel oder sowas sollte es eigentlich nicht sein, dann meldet der parser normalerweise einen Fehler.

CU
Faron
 
Ich sehe so auf den ersten Blick auch nicht wo der Fehler ist, aber wenn der code mit is_dir funktioniert benutze doch einfach diesen mit einer kleinen verneinung:
PHP:
if ($file != "." && $file != ".." && !is_dir($file)) { 
$list_file[] = "$file";
}

gruß tob
 
Also das einzige, was ich sehe ist, dass du hinter den funktionen is_dir und is_file ein Leerzeichen gemacht hast, was man normalerweise nicht macht ;)
Bei mir funktioniert das Script, wenn ich die Leerzeichen rausnehm ;)

So läufts bei mir:

PHP:
$f1_dir = opendir('.'); 
while ($dir = readdir ($f1_dir)) { 
#!!! jetzt kommt die Interessante Zeile!!!
# nur Verzeichnisse beachten, hier gehts
if ($dir != "." && $dir != ".." && is_dir($dir)) { 
$list_dir[] = "$dir";
}
}

PHP:
foreach ($list_dir as $eindir) {
unset ($list_file);
$f2_dir = opendir($eindir); 
while ($file = readdir ($f2_dir)) { 
#!!! jetzt kommt die Interessante Zeile!!!
# nur Dateien beachten, hier gehts NICHT,
# es werden auch Verzeichnisse gelistet
if ($file != "." && $file != ".." && is_file($file)) { 
$list_file[] = "$file";
} 
}
}
closedir ($f2_dir);
 
Zurück