Best way to get files from a dir filtered by certain extension in php
If you want more than one extension searched, then preg_grep()
is an alternative for filtering:
$files = preg_grep('~\.(jpeg|jpg|png)$~', scandir($dir_f));
Though glob
has a similar extra syntax. This mostly makes sense if you have further conditions, add the ~i
flag for case-insensitive, or can filter combined lists.
PHP has a great function to help you capture only the files you need. Its called glob()
glob - Find pathnames matching a pattern
Returns an array containing the matched files/directories, an empty array if no file matched or FALSE on error.
Here is an example usage -
$files = glob("/path/to/folder/*.txt");
This will populate the $files
variable with a list of all files matching the *.txt
pattern in the given path.
Reference -
glob()
PHP's glob()
function let's you specify a pattern to search for.