Einzelnen Beitrag anzeigen
  #7  
Alt 20.12.2003, 16:04:45
Fuchs Fuchs ist offline
Junior Member
 
Registriert seit: Jul 2003
Beiträge: 182
Wobei diese Vorgehensweise, ein Verzeichnis auszulesen im duemmsten Fall schiefgehen _KANN_.

PHP-Code:
print_r(scandir('.'));

$dh opendir('.');
while (
$fname readdir($dh)){
    echo 
$fnameendl;

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.
Mit Zitat antworten