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:

scandir has been fixed (not directly related to this issue) as well as
the mounted points issues. All regressions should be fixed now. Can you
give it a try please? The next snapshot will have the fixes.


Previous Comments:
------------------------------------------------------------------------

[2009-09-01 17:51:00] s...@php.net

Automatic comment from SVN on behalf of pajoye
Revision: http://svn.php.net/viewvc/?view=revision&revision=287950
Log: - #48746, revert previous about volume. Fix volume support to
allow all mounted points (with or without drives)

------------------------------------------------------------------------

[2009-09-01 17:46:17] s...@php.net

Automatic comment from SVN on behalf of pajoye
Revision: http://svn.php.net/viewvc/?view=revision&revision=287949
Log: - #48746, fix regression in readdir/scandir and mounted points or
junctions on windows

------------------------------------------------------------------------

[2009-08-30 13:06:33] paj...@php.net

@shoresofnowhere at gmail dot com

Not with symlink/link/etc. You can try it under unix as well:

/var/www/dir1
/var/www/test.txt
/var/www/dir2
/var/www/dir2/linktodir1
/var/www/dir2/test2.txt
/var/www/dir2/linktodir1/t.php

In t.php, ../test2.txt will fail because it will use dir1 as base
direct. That's how it always worked, windows had only partial support
for links (symbolic or hard) or junctions. It worked before but it was
not correct (and not portable).

------------------------------------------------------------------------

[2009-08-30 13:00:44] shoresofnowhere at gmail dot com

@ pajoye:

Sorry, but i don't understand why the correct behaviour should be that
of 5.3:

dir1 directory
subdir1 subdirectory of dir1
cfg.php file in dir1

dir2 directory
cfg.php file in dir2
junction1 junction to subdir1 created in dir2

and i have in dir1/subdir1/file.php:
        require_once("../cfg.php");

I expect that if i run dir1/subdir1/file.php i get
        require_once("dir1/cfg.php");

BUT if i run dir2/subdir1/file.php i will get
        require_once("dir2/cfg.php");

Could you please tell me why this would be wrong? File inclusions have
always been relative to the path of the main php file that's
executing...

Thanks!

------------------------------------------------------------------------

[2009-08-30 11:17:07] paj...@php.net

Found the problems, the windows port of dirent (scandir) as well as
php_mkdir (used by mkdir()) lack a call to realpath, making them use the
current path with the standard API. It ends to use c:.

Testing the patch but it should do it for RC1 next Tuesday. You can
test the patch yourself by calling realpath manually:

scandir(realpath('mounted_volume')); or
mkdir(realpath('mounted_volume\\test34'));

Other files operations work as expected.

------------------------------------------------------------------------

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

Reply via email to