Sarathlal N

Find files using glob() - PHP function

The glob() is a default PHP function & it can act as a variant of scandir() with more capability. It can find files that matching a pattern.

The glob() returns an array containing the matched files/directories and an empty array if no file matched or FALSE on error.

// get all php files
$files = glob('*.php');

print_r($files);

The output will be

Array
(
	[0] => myphp.php
	[1] => me.php
	[2] => page_output.php
)

We can also fetch multiple file types using glob().

// get all php files AND txt files
$files = glob('*.{php,txt}', GLOB_BRACE);

print_r($files);   

The GLOB_BRACE is a flag in glob() function used to expand {a,b,c} to match ‘a’, ‘b’, or ‘c’.

Now the output will be a collection of file names with .php & .txt extension.

Array
(
	[0] => myphp.php
	[1] => me.php
	[2] => page_output.php
	[3] => log.txt
	[4] => test.txt
)

We can also return file name with its path by just improving our query.

// find files from image directory
$files = glob('../image/a*.jpg');

print_r($files);

The result will be,

Array
(
	[0] => ../image/apple.jpg
	[1] => ../image/art.jpg
)

If we want the full path to each file, we can just call the realpath() function on the returned values.

$files = glob('../image/a*.jpg');

// applies the function to each array element
$files = array_map('realpath',$files);

print_r($files);

Now the result will be full path of each file that match glob() pattern.

Array
(
	[0] => varwwwimageapple.jpg
	[1] => varwwwimageart.jpg
)

Recent Posts

  1. Automating Release Generation with GitHub Actions
  2. WP CLI Commands to Bulk Delete Entries in WordPress Database
  3. Split a Single CSV File into Multiple Files Using the Split Command - Bash
  4. Migrating code repo from BitBucket to GitHub
  5. Streamlining Development - Our Journey with Git, Bitbucket, and Jira

Your Questions / Comments

If you found this article interesting, found errors, or just want to discuss about it, please get in touch.