Ответ 1
Вам нужно изменить регулярное выражение в preg_grep:
$files = preg_grep('~^tpl-.*\.php$~', scandir(admin . "templates/default/"));
Объяснение:
-
^tpl-
- начиная с "tpl-" -
.*
- любые символы -
\.php$
- заканчивается на .php
Это настраиваемая функция. На данный момент эта функция получает весь файл в каталоге по умолчанию, вырезает ".php" и перечислит их.
Проблема в том, что я хочу получать файлы только из каталога с начальным префиксом "tpl-" Пример: tpl-login-page.php
/* Get template name of the file */
function get_template_name (){
$files = preg_grep('~\.(php)$~', scandir(admin . "templates/default/"));
foreach($files as $file){
$file = str_replace('.php','',$file);
echo $file . "<br/>";
}
}
Вам нужно изменить регулярное выражение в preg_grep:
$files = preg_grep('~^tpl-.*\.php$~', scandir(admin . "templates/default/"));
Объяснение:
^tpl-
- начиная с "tpl-"
.*
- любые символы
\.php$
- заканчивается на .php
Мне нравится другой, простой способ:
1. получить все файлы в папке
$path = './images';
$files = glob($path.'/*');
2. получить все файлы с расширением .jpg
$path = './images';
$files = glob($path.'/*.jpg');
3. получить все файлы с префиксом myprefix_
$path = './images';
$files = glob($path.'/myprefix_*');
$target_file_png = glob($target_dir.'/group_'.$groupId.'*.png');
$target_file_png
вернет массив, содержащий все файлы в папке, указанной в пути $target_dir
, начиная с '/group_'.$groupId.'
и указывая формат файла как *.png