ID: 24627 User updated by: duerra at yahoo dot com Reported By: duerra at yahoo dot com -Status: Bogus +Status: Open Bug Type: Filesystem function related Operating System: XP Pro PHP Version: 4.3.3RC1 New Comment:
php.net's own manual shows that this should work. I'm not reading the file, but rather just gathering a count of each line. As I stated, this has always worked in previous versions of PHP, and is also many tutorials and books, including "PHP and MySQL Web Development" (as I am looking at the example right now) have shown an example almost identical to what I've posted here on how to do such looping and counting. I believe that the file pointer not moving is exactly the problem (please correct me if I'm wrong). Is that not a bug, and if not, what has changed between 4.3.2 and 4.3.3 that I have not noticed?? I see nothing of reference in the change log for 4.3.3 Previous Comments: ------------------------------------------------------------------------ [2003-07-12 18:31:30] duerra at yahoo dot com This always worked correct in previous versions of PHP. It wasn't until the move to 4.3.3RC1 (from 4.3.2) that I had this infinite looping problem. ------------------------------------------------------------------------ [2003-07-12 18:28:42] [EMAIL PROTECTED] Thank you for taking the time to write to us, but this is not a bug. Please double-check the documentation available at http://www.php.net/manual/ and the instructions on how to report a bug at http://bugs.php.net/how-to-report.php Yes, b_ulrich is right. ------------------------------------------------------------------------ [2003-07-12 18:21:03] b_ulrich at t-online dot de Your example works correct: while(!feof($open)) { $count++; } must be an endless loop because the filepointer never moves. Maybe you should do an fread($open,1024); inside the while loop. Or what ever you want to count. ------------------------------------------------------------------------ [2003-07-12 18:07:44] duerra at yahoo dot com Description: ------------ In PHP 4.3.3RC1, feof (Windows) always returns false in the code provided below, and goes into an endless loop. Reproduce code: --------------- $count = 0; if ($handle = opendir("./")) { while (false !== ($file = readdir($handle))) { if(!is_dir($file) AND $file != '.' AND $file !='..' AND $file !='default' AND (strstr($file, ".php") OR strstr($file, ".htm") OR strstr($file, ".txt"))) { if(!$open = fopen($file, "r")) { echo "Could Not Open File"; exit; } while(!feof($open)) { $count++; } fclose($open); } } } echo $count; Expected result: ---------------- 123456 (or another number) Actual result: -------------- Infinite loop once a file is opened (I cut out the test code that I used to verify that it's actually a bug in order to stay within the 20 line limit). ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=24627&edit=1