Wobei diese Vorgehensweise, ein Verzeichnis auszulesen im duemmsten Fall schiefgehen _KANN_.
PHP-Code:
print_r(scandir('.'));
$dh = opendir('.');
while ($fname = readdir($dh)){
echo $fname, endl;
}
Meine Ausgabe:
Code:
Array
(
[0] => .
[1] => ..
[2] => .htaccess
[3] => 0
[4] => PHPFunctions.xml
[5] => bench.php
[6] => bench1.php
[7] => bench2.php
[8] => config.ini
[9] => inclusions
[10] => misc.php
[11] => phpinfo.php
[12] => projects
)
.
..
.htaccess
Was passiert hier?
Nach dem 3. Durchlauf d. Schleife ('.htaccess') kommt eine Datei mit dem Namen '0'. Also ist $fname == '0' und if ('0') {} wird zu false evaluiert. Die Schleife wurde abgebrochen.
Korrekt muesst man auf den Bool'schen Wert false ueberpruefen.
Sprich:
PHP-Code:
while ($fname = readdir($dh) !== false) {};
Natuerlich ist das ein Worst-Case, aber es _KANN_ vorkommen und dann sucht man 2 Std. nach dem Problem.