Есть каталог:
$ # w/o dotfiles:
$ find /path/to/dir | grep -v '/\.' | wc -l
146016
Результат рекурсивного перебора файлов с помощью функции glob
и шаблона без {}
зависит от флага GLOB_BRACE
:
#!/usr/bin/env php
<?php
function foo($path, &$nfile) {
$files = glob($path.'/*');
foreach ($files as $file) {
$nfile++;
if (is_dir($file))
foo($file, $nfile);
}
}
$nfile = 0;
foo('/path/to/dir', $nfile);
echo("$nfile\n"
?>
$ diff glob glob_brace
4c4
< $files = glob($path.'/*');
---
> $files = glob($path.'/*', GLOB_BRACE);
$ ./glob
146015
$ ./glob_brace
143433
* - Matches zero or more characters
GLOB_BRACE - Expands {a,b,c} to match 'a', 'b', or 'c'
https://www.php.net/manual/en/function.glob.php
Так должно быть? Почему?
// Флаг GLOB_BRACE
мне понадобится с другим шаблоном, чтобы перебрать и dotfiles.