ID:               37350
 Comment by:       hanskrentel at yahoo dot de
 Reported By:      k95vz5f02 at sneakemail dot com
 Status:           Open
 Bug Type:         Filesystem function related
 Operating System: Windows XP SP2
 PHP Version:      5.1.4
 New Comment:

within the windows OS there is no difference between cAsE in filenames,
a solution might be to read out the actual filename from the system and
return it by realpath.

but this won't be a valid solution afterall: next to case ignorance,
there are two filenames for a file as well: the long and the short
(8.3) one (since win/32/95 or FAT 32). so i guess a comparison will
fail in that case anyway.

additionally, for me another problem occurs:

c:\windows is a directory and could be name as c:\windows\ as well (in
my opinion it even should but that's my personal opinion anyway).

since for me there is no logical correct solution for this problem
anyway I would suggest to handle the windows filesystem more similar to
the *nix one, that meaning using / instead of \ for example to point to
directories with the needed / at the end. additionally, a virtual root
might be good idea as well sothat "c:\windows" would be "/c:/windows/"
afterall. this would help developers to create better cross platform
code. this might be already discussed somewhere else maybe.


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

[2006-05-07 18:41:58] [EMAIL PROTECTED]

Realpath is also used internally for f.e. include_once, so this should
be looked into.

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

[2006-05-07 18:08:28] k95vz5f02 at sneakemail dot com

Description:
------------
The realpath function doesn't canonicalize the case of the drive letter
on Windows (and possibly on certain other platforms).

For example:
realpath('C:\WINDOWS') returns 'C:\WINDOWS'
but realpath('c:\WINDOWS') returns 'c:\WINDOWS'
(note the different case of the 'C:')

Hence comparing realpaths cannot reliably be used to check that two
files are the same on Windows.

Reproduce code:
---------------
echo (realpath('C:\WINDOWS')==realpath('c:\WINDOWS')) ? "true" :
"false";

Expected result:
----------------
true

Actual result:
--------------
false


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


-- 
Edit this bug report at http://bugs.php.net/?id=37350&edit=1

Reply via email to