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. Replace string in multiple files - Command line
  2. Solve Grunt error - Port 35729 is already in use by another process
  3. Install WP-CLI
  4. Install LAMP - Apache2 , MariaDB, PHP 7 on Debian 8
  5. Enable / Disable Magento 2 module using command line


Questions / Comments

If you found this article interesting, found errors, or just want to discuss about them, please get in touch. Send an email to hello@sarathlal.com & I like your words.