glob()
関数がかなり遅いことは知っていますが、GLOB_ONLYDIR
引数でどのように機能しますか?それでもすべてのファイルをチェックしますか、それとも何らかのインデックスなどを使用しますか?
質問する
377 次
1 に答える
1
ソースを見て:
/* we need to do this everytime since GLOB_ONLYDIR does not guarantee that
* all directories will be filtered. GNU libc documentation states the
* following:
* If the information about the type of the file is easily available
* non-directories will be rejected but no extra work will be done to
* determine the information for each file. I.e., the caller must still be
* able to filter directories out.
*/
if (flags & GLOB_ONLYDIR) {
struct stat s;
if (0 != VCWD_STAT(globbuf.gl_pathv[n], &s)) {
continue;
}
if (S_IFDIR != (s.st_mode & S_IFMT)) {
continue;
}
}
したがって、PHPは、ディレクトリ以外のファイルのみを要求したかどうかに関係なく、各ファイルをチェックする必要があります。
于 2013-03-13T15:41:32.253 に答える