ID: 48746 Comment by: shoresofnowhere at gmail dot com Reported By: ddkees at illinois dot edu Status: Feedback Bug Type: Directory function related Operating System: win32 only - Windows Server 2003 PHP Version: 5.3.0 Assigned To: pajoye New Comment:
Sorry but the latest snapshot still has problems: Dir directory one.php file in dir directory Dir2 junction in dir to dir3 on another drive two.php file in dir3 in one.php: is_file(./dir2/two.php) returns FALSE! Working on XP SP3 under Apache 2.2.13 Previous Comments: ------------------------------------------------------------------------ [2009-09-04 08:11:06] mats dot lindh at gmail dot com Everything seems to work OK with a build from 2009-09-03. Thanks for fixing the issue! ------------------------------------------------------------------------ [2009-09-03 10:10:14] phpstuff at cresstone dot com I'm getting good test behavior from the that snapshot. More tellingly, the original script I've been trying to run is now working correctly. Thanks. ------------------------------------------------------------------------ [2009-09-02 23:26:04] paj...@php.net I can't reproduce the problem with is_dir or is_file behave correctly, however I think I found the problem and commited a fix. I can reproduce the scandir one, same fix. I manually launched a build, you can get the vc9-x86 here: http://is.gd/2OtDf (other snaps should be online within 15mins). ------------------------------------------------------------------------ [2009-09-02 22:59:59] s...@php.net Automatic comment from SVN on behalf of pajoye Revision: http://svn.php.net/viewvc/?view=revision&revision=287975 Log: - #48746, len includes null already ------------------------------------------------------------------------ [2009-09-02 21:29:08] phpstuff at cresstone dot com Using Windows 7 x64. It seems all files in my mounted volumes are being treated as directories. (is_dir returns true, is_file returns false.) Directory operations pointed at files seem to point back to the root of the volume. The following script: echo "dumping: scandir('mounted_volume')\n"; var_dump(scandir('mounted_volume')); echo "dumping: scandir('mounted_volume\\file1')\n"; var_dump(scandir('mounted_volume\file1')); gives this output: dumping: scandir('mounted_volume') array(4) { [0]=> string(12) "$RECYCLE.BIN" [1]=> string(4) "dir1" [2]=> string(4) "dir2" [3]=> string(5) "file1" } dumping: scandir('mounted_volume\file1') array(4) { [0]=> string(12) "$RECYCLE.BIN" [1]=> string(4) "dir1" [2]=> string(4) "dir2" [3]=> string(5) "file1" } Nesting does not seem to matter, eg: scandir('mounted_volume\dir1\file_in_dir1'); gives the same output Something else that's interesting... When I create the junction from a drive letter, eg: "mklink mounted_volume y:" everything works perfectly, files are files and dirs are dirs. It's only when I use the volume name in the creation ("mklink /J mounted_volume \\?\Volume{feeac7c1-2ad0-11de-89bb-001fd0ae05ac}\") that I get this strange behavior. Bizarre, but I swear I'm not making this up :) ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at http://bugs.php.net/48746 -- Edit this bug report at http://bugs.php.net/?id=48746&edit=1