Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

PHP Get file name starting with prefix

Tags:

php

This is a custom function. At the moment, this function get all the file in the default directory, strip ".php" and list them.

The problem is that I want to only get files from the directory which has starting prefix "tpl-" Example : 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/>";
                }
        }
like image 530
Johny Avatar asked Dec 07 '13 04:12

Johny


3 Answers

You need to change the regular expression in preg_grep:

$files = preg_grep('~^tpl-.*\.php$~', scandir(admin . "templates/default/"));

Explanation:

  1. ^tpl- - starting with "tpl-"

  2. .* - any characters

  3. \.php$ - ending with ".php"

like image 114
user4035 Avatar answered Nov 09 '22 11:11

user4035


I like another, simple way:

1. get all files in folder

   $path = './images'; 
   $files = glob($path.'/*');

2. get all files having extension .jpg

   $path = './images'; 
   $files = glob($path.'/*.jpg');

3. get all files having prefix myprefix_

   $path = './images'; 
   $files = glob($path.'/myprefix_*');
like image 21
Rain Avatar answered Nov 09 '22 13:11

Rain


 $target_file_png = glob($target_dir.'/group_'.$groupId.'*.png'); 

$target_file_png will return an array containing all the files in folder specified in the path $target_dir starting with '/group_'.$groupId.' and specify the file format as *.png

like image 1
Jestin Skaria Avatar answered Nov 09 '22 11:11

Jestin Skaria