glob
- это то, что вы хотите здесь. Однако, поскольку вы, кажется, используете Laravel (из-за тега), вы должны посмотреть класс FileSystem
Laravel (доступный с использованием фасада File
): 4.2 docs. Он предоставляет оболочку для стандартных функций PHP-файлов (хотя на самом деле это не добавляет ничего в микс для ваших целей).
Вы можете делать такие вещи, как это:
if (File::isDirectory($dir)) {
foreach (File::glob($dir.'/project-1-*') as $projectDir) {
$actualDir = substr($projectDir, strlen($dir) + 1); // trim the base directory
}
}
Но если вы хотите более мощную систему файлового поиска, вы можете использовать Finder
компонент Symfony в (docs), который уже включен в проект, если вы повторное использование Laravel (как некоторые Laravel Filesystem
методов используют его), и вы будете в состоянии сделать что-то вроде этого:
$dirs = Finder::create()->in($dir)->depth(0)->directories()->name('project-1-*');
// or, if you want to use regex, this should work
$dirs = Finder::create()->in($dir)->depth(0)->directories()->name('/^project-1-/');
Теперь Finder возвращает итератор, так что вы можете используйте функцию PHP iterator_to_array
, чтобы превратить ее в массив, если вам нужно использовать ее как массив (при этом итератор лучше, если вам не нужен он как массив, например, foreach
).
использовать $ файл, чтобы проверить имя для каждого из них? –
'glob()' это способ пойти – Rizier123
Возможный дубликат [Список конкретных файлов PHP в каталоге] (http://stackoverflow.com/questions/3062154/php-list-of-specific-files-in- а-каталог). Но используйте самый проголосовавший ответ. – sectus