Edit report at https://bugs.php.net/bug.php?id=61909&edit=1
ID: 61909 Comment by: david at panmedia dot co dot nz Reported by: david at panmedia dot co dot nz Summary: PHP realpath on Windows Case Issue Status: Open Type: Bug Package: Filesystem function related Operating System: Windows Vista/7 PHP Version: Irrelevant Block user comment: N Private report: N New Comment: On further investigation I have noticed that on Windows symlinks are only followed 1 level deep: // F:\>mkdir link-target // F:\>mklink /D link f:\link-target // F:\>mklink /D link2 f:\link $dir = realpath('f:\link2'); var_dump($dir); $dir = realpath($dir); var_dump($dir); $dir = realpath($dir); var_dump($dir); // string 'f:\link' (length=7) // string 'f:\link-target' (length=14) // string 'F:\link-target' (length=14) Previous Comments: ------------------------------------------------------------------------ [2012-05-02 17:37:52] david at panmedia dot co dot nz Description: ------------ I have a symlink on my Windows server which was made like this: F:\>mkdir link-target F:\>mklink /D link f:\link-target (Note the lower case f: in the symlink target) In PHP I run this: $dir = realpath('f:\link'); var_dump($dir); $dir = realpath($dir); var_dump($dir); Which outputs: string 'f:\link-target' (length=14) string 'F:\link-target' (length=14) Notice the change in case on the second realpath. The expected output is: string 'F:\link-target' (length=14) string 'F:\link-target' (length=14) Test script: --------------- <?php // F:\>mkdir link-target // F:\>mklink /D link f:\link-target $dir = realpath('f:\link'); var_dump($dir); $dir = realpath($dir); var_dump($dir); Expected result: ---------------- string 'F:\link-target' (length=14) string 'F:\link-target' (length=14) Actual result: -------------- string 'f:\link-target' (length=14) string 'F:\link-target' (length=14) ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=61909&edit=1