PHP 4.0 Bug #5455 Updated: readdir() still doesn't work

From: Date: Sat, 15 Jul 2000 09:09:57 +0000
Subject: PHP 4.0 Bug #5455 Updated: readdir() still doesn't work
Groups: php.dev 
Request: Send a blank email to php-dev+get-24512@lists.php.net to get a copy of this message
ID: 5455 User Update by: johan@ekenberg.se Status: Feedback Bug Type: Misbehaving function Description: readdir() still doesn't work 1. The while loop is only evaluated once, despite the fact that there are more directory entries to list. I earlier wrote that the while-loop exits at the first evaluation of the if-statement, but that is not true. The execution continues after the if-statement until the end of the while loop, there it exits. If the if-statement is removed or commented out, the while loop will continue looping until all entries in the directory are listed. With the if-statement left in place it's exactly like putting "break;" as the last line of the while loop - it never evaluates more than once. I guess that something in the if-statement makes readdir($dir) evaluate to false the next time. $dir = opendir("."); while ($file = readdir($dir)) { print "<br>$file"; if ($file == "foo") { // anything or nothing here, doesn't matter } // Code placed here will also be evaluated, // but as long as the if-statement above is not // removed, the while loop will exit after // completing once - like putting a // break; // as the last line of the while loop. } I earlier submitted an URL with a working example which I believe displays the issue rather clearly: http://www.ekenberg.se/readdir/index.php 2. "gdb -X httpd" doesn't report anything unusual - httpd happily keeps on executing, there are no errors and it doesn't exit. zend_bailout() is never called. Full Bug description available at: http://bugs.php.net/?id=5455

« previous php.dev (#24512) next »