ID: 38989 Comment by: RQuadling at GMail dot com Reported By: info at xboot dot de Status: Critical Bug Type: Filesystem function related Operating System: Windows 2003 SP1 PHP Version: 5CVS-2006-09-29 (snap) New Comment:
With the CLI version, if you are in the root of the drive when the script is run then the file is found. <?php // C:\boot.ini echo file_get_contents('/boot.ini'); // D:\system.pas echo file_get_contents('/system.pas'); ?> If in C:\, then boot.ini is found. If in my C:\BATCH directory then it is not. According to System Internals FileMon.exe, filtering boot.ini;system.pas results in ... 14:56:56 php.exe:2004 IRP_MJ_DIRECTORY_CONTROL C:\BATCH\ NO SUCH FILE FileBothDirectoryInformation: boot.ini 14:56:56 php.exe:2004 IRP_MJ_CREATE C:\BATCH\boot.ini NOT FOUND Options: Open Access: All 14:56:56 php.exe:2004 IRP_MJ_DIRECTORY_CONTROL C:\BATCH\ NO SUCH FILE FileBothDirectoryInformation: system.pas 14:56:56 php.exe:2004 IRP_MJ_CREATE C:\BATCH\system.pas NOT FOUND Options: Open Access: All This removes the issue as relating to ISAPI only (i.e. it is not the webserver getting in the way). Using php -n at the cli removes any issue with ini file settings. Previous Comments: ------------------------------------------------------------------------ [2006-09-29 08:33:32] info at xboot dot de PHP runs as ISAPI ------------------------------------------------------------------------ [2006-09-29 07:45:59] info at xboot dot de Description: ------------ System: Win 2003 SP1 IIS 6 PHP 5.2.0RC5-dev (29.09.2006) File operations with slash at the beginning (absolute path) don't work. It doesn't matter which kind of function i use. include(), fopen(), SPL-functions, ... don't work if i pass a filename with a slash at the beginning. If i add the drive letter it works correct. The same script works fine with PHP 5.1.2. Reproduce code: --------------- <?php echo $_SERVER['PHP_SELF'] . '<br />'; $handle = fopen($_SERVER['PHP_SELF'], "r"); // this is the same file, but it works: // $handle = fopen("D:\Intranet\path.php", "r"); echo $handle; ?> Expected result: ---------------- Result with PHP 5.1.2: /intranet/path.php Resource id #2 Actual result: -------------- Result with PHP Version 5.2.0RC5-dev (29.09.2006): /intranet/path.php Warning: fopen(/intranet/path.php) [function.fopen]: failed to open stream: No such file or directory in D:\Intranet\path.php on line 5 ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=38989&edit=1