11

I need to read a file in PHP, but I only know the end of the filename, so I need to serch the file in a given directory using wildcards: *filename.wav and then return it to the browser. Is there a function to do that? or I need to get all the files in the directory and then search one by one?

Thanks for all the comments and help.

doc
  • 269
  • 1
  • 4
  • 15

2 Answers2

29

Take a look at the glob() function

For example if you wanted to get every file matching *abc.xyz in the subdirectory dir

$matches = glob('./dir/*abc.xyz');

Note that glob isn't recursive and will only search a single directory and not all sub directories.

Yacoby
  • 54,544
  • 15
  • 116
  • 120
5

In addition to Yacoby's answer, I would like to add that a new GlobIterator class has been added to PHP >= 5.3.

It allows one to use wildcards, the same way as glob() does -- but, in additional :

  • Tt implements the Iterator interface
  • You can have it work returning instance of the SplFileInfo class


So many useful things in the SPL (Standard PHP Library), and no-one ever thinking about them... I couldn't resist.

Community
  • 1
  • 1
Pascal MARTIN
  • 395,085
  • 80
  • 655
  • 663