Есть каталог:

$ # 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.








 , ,






URL записи