#39087 [Opn]: filetype() or is_dir() not recognizing a directory

From: Date: Mon, 09 Oct 2006 05:48:00 +0000
Subject: #39087 [Opn]: filetype() or is_dir() not recognizing a directory
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-103276@lists.php.net to get a copy of this message
ID: 39087 User updated by: scottayy at gmail dot com Reported By: scottayy at gmail dot com Status: Open Bug Type: Directory function related Operating System: Windows XP Pro SP2 Build 2600 PHP Version: 5.1.6 New Comment: Sorry, I forgot to mention that when looping through, '.' and '..' are recognized as directories with filetype() and is_dir(), but the directories I created are not. Previous Comments: ------------------------------------------------------------------------ [2006-10-09 05:41:27] scottayy at gmail dot com Description: ------------ PHP fails to recognize directories when looping through a directory. filetype() says lstat() fails, and is_dir() returns false. I have the following directory structure. / /themes/ /themes/crap/ /themes/default/ Using this simple script to loop through the themes directory and get directory names: Reproduce code: --------------- <?php //gather available themes function get_available_themes() { if($handle = @opendir('themes')) { $themes = array(); while(false !== ($file = readdir($handle))) { if(is_dir($file) && ($file != '.' && $file != '..')) { $themes[] = $file; } } if(empty($themes)) { return false; } } else { return false; } return $themes; } if($themes = get_available_themes()) { echo '<pre>'; print_r(get_available_themes()); echo '</pre>'; } else { echo 'No themes could be found.'; } ?> Expected result: ---------------- Array ( [0] => crap, [1] => default ) Actual result: -------------- The function returns false because the array actually contains: Array ( ) If I echo out $file during the while() loop, I see . .. crap default ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=39087&edit=1

« previous php.bugs (#103276) next »