Johny
Johny

Reputation: 401

PHP Get file name starting with prefix

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/>";
                }
        }

Upvotes: 23

Views: 25635

Answers (3)

user4035
user4035

Reputation: 23729

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"

Upvotes: 28

Rain
Rain

Reputation: 601

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_*');

Upvotes: 24

Jestin Skaria
Jestin Skaria

Reputation: 21

 $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

Upvotes: 1

Related Questions