#38022 [Com]: glob() problems

From: Date: Tue, 27 Feb 2007 19:15:05 +0000
Subject: #38022 [Com]: glob() problems
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-109684@lists.php.net to get a copy of this message
ID: 38022 Comment by: francois at tekwire dot net Reported By: flconseil at yahoo dot fr Status: Open Bug Type: Feature/Change Request Operating System: All PHP Version: 5.1.4 New Comment: An internal glob() implementation should also provide a flag to exclude hidden files (Unix: starting with a dot, Windows: hidden). Previous Comments: ------------------------------------------------------------------------ [2006-07-06 15:10:29] flconseil at yahoo dot fr Description: ------------ Today, glob() calls the libc glob() function, with the following problems: - Possible inconsistencies between implementations (POSIX compliance) - fnmatch not available outside of Unix : an internal glob() implementation would bring an internal fnmatch() implementation, which would allow fnmatch() on every platform. - Important: on most (every ?) Unix systems, glob() is using stat() instead of lstat(). Thus, broken links are ignored. Inconsistant with a naive 'ls' which lists everything in the directory. - The current glob() implementation in PHP (ext/standard/dir.c) assumes that all returned matches are in the same directory, which is wrong. So, the 'safe mode' and 'open_basedir' checks are wrong. - glob() does not support streams, although most other directory functions support them. It cannot be done without implementing glob() internally. - Apart from glob(), the chdir() and getcwd() functions should also support stream-wrapped directories. It would be easy to implement but it must be synchronized with the support of stream wrapped paths in the include path. Reproduce code: --------------- None Expected result: ---------------- None Actual result: -------------- None ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=38022&edit=1

« previous php.bugs (#109684) next »