ID: 25583 Updated by: [EMAIL PROTECTED] Reported By: d dot stogov at turck dot spb dot eu -Status: Open +Status: Assigned Bug Type: Directory function related Operating System: Windows PHP Version: 4.3.3 -Assigned To: +Assigned To: iliaa
Previous Comments: ------------------------------------------------------------------------ [2003-09-18 04:05:37] d dot stogov at turck dot spb dot eu Description: ------------ This BUG is Windows releated. PHP thinks what filepathes started form one slash are relative. The problem comes from IS_ABSOLUTE_PATH definw which is defined in file "TSRM/tsrm_virtual_cwd.h" line 64. The original source is #define IS_ABSOLUTE_PATH(path, len) \ (len >= 2 && ((isalpha(path[0]) && path[1] == ':') || (IS_SLASH(path[0]) && IS_SLASH(path[1])))) but I think it must be changed to #define IS_ABSOLUTE_PATH(path, len) \ ((len >= 2 && isalpha(path[0]) && path[1] == ':') || \ (len >= 1 && IS_SLASH(path[0]) && IS_SLASH(path[1]))) I demonstrate the BUG of the glob() function, but it can occur in any place where IS_ABSOLUTE_PATH is used. Reproduce code: --------------- <?php function remove_drive($file) { return substr($file,2); } if (substr(PHP_OS,0,3) == WIN) { $drive = substr(getcwd(),0,2); $a1 = glob("/*"); $a2 = array_map("remove_drive",glob($drive."/*")); if ($a1==$a2) { echo "ok"; } else { echo "fail"; } } else { echo "ok"; } ?> Expected result: ---------------- ok Actual result: -------------- fail ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=25583&edit=1