ID: 48746 Updated by: paj...@php.net 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:
@[4 Sep 8:20pm UTC] phpstuff at cresstone dot com Using is_dir and is_file or file_exists and the cases you described, does it work? (I don't think the filetype issue is related to what we discuss here). Previous Comments: ------------------------------------------------------------------------ [2009-09-04 20:20:02] phpstuff at cresstone dot com I was able replicate shoresofnowhere's behavior using windows 7... I created a junction to a folder on another drive; running is_file() on a file inside that junction returned false, as did is_dir(). Curious to see what php thought it was looking at, I tested filetype(), which threw an error. I then tested symlinks in the same manner, and got good behavior. Symlinks seem to be a good workaround for this issue. Test log follows: C:\mnt\test>mklink /J junction_otherDrive f:\downloads Junction created for junction_otherDrive <<===>> f:\downloads C:\mnt\test>mklink /D symlink_otherDrive f:\downloads symbolic link created for symlink_otherDrive <<===>> f:\downloads C:\mnt\test>dir Volume in drive C is coreI7_System Volume Serial Number is 38E2-2B62 Directory of C:\mnt\test 2009.09.04 16.05 <DIR> . 2009.09.04 16.05 <DIR> .. 2009.09.04 16.05 <JUNCTION> junction_otherDrive [f:\downloads] 2009.09.04 16.05 <SYMLINKD> symlink_otherDrive [f:\downloads] 0 File(s) 0 bytes 4 Dir(s) 30,034,223,104 bytes free C:\mnt\test>php -r var_dump(filetype('junction_otherdrive')); PHP Warning: filetype(): Lstat failed for junction_otherdrive in Command line code on line 1 Warning: filetype(): Lstat failed for junction_otherdrive in Command line code on line 1 bool(false) C:\mnt\test>php -r var_dump(filetype('junction_otherdrive\php-5.2.0-win32-installer.msi')); PHP Warning: filetype(): Lstat failed for junction_otherdrive\php-5.2.0-win32-installer.msi in Comm and line code on line 1 Warning: filetype(): Lstat failed for junction_otherdrive\php-5.2.0-win32-installer.msi in Command l ine code on line 1 bool(false) C:\mnt\test>php -r var_dump(filetype('symlink_otherdrive')); string(3) "dir" C:\mnt\test>php -r var_dump(filetype('symlink_otherdrive\php-5.2.0-win32-installer.msi')); string(4) "file" ------------------------------------------------------------------------ [2009-09-04 18:32:33] paj...@php.net Ignore my last two comments, it works perfectly using what you describe. I was testing it from another VM where this junction did not exist. I added a include 'dir3/two.php' to one.php, two.php being a simple echo "two.php" The output: C:\test>\php53\debug_ts\php.exe -n one.php two.php bool(true) C:\test>junction dir3 .... C:\test\dir3: JUNCTION Substitute Name: e:\test C:\test>dir dir3 ... 09/04/2009 07:33 PM 24 two.php 1 File(s) 24 bytes 2 Dir(s) 202,975,232 bytes free ------------------------------------------------------------------------ [2009-09-04 17:50:34] paj...@php.net Please note that it is again a XP/2k3 only issue. Debugging/fixing now. ------------------------------------------------------------------------ [2009-09-04 17:36:30] paj...@php.net @shoresofnowhere at gmail dot com ok, I can reproduce it now. I will come back as soon as I have a fix. ------------------------------------------------------------------------ [2009-09-04 17:26:49] paj...@php.net @shoresofnowhere at gmail dot com I suppose you mean: c:\Dir |_ one.php |_ Dir3 (junction to d:\dir) |_ two.php Using this constellation, here is my output on xp SP3: C:\mnt>junction dir3 Junction v1.05 - .. ... C:\mnt\dir3: JUNCTION Substitute Name: c:\test C:\mnt>\test\php53vc6ts\php.exe one.php bool(true) Are you sure: - apache has been restarted after the update? - the right version is used? Can you try in CLI as well please? ------------------------------------------------------------------------ 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