[But] recursive functions are complex, messy things and most developers (including myself) don't really enjoy working with them. That's why, when my last project needed to scan a directory hierarchy for a particular file (a typical recursive-function task), I didn't even consider rolling my own code. Instead, I headed straight for PEAR and its File_Find class, which takes all the pain out of searching multi-level directory structures.
You'll need to have worked with PEAR before, as there's no installation instructions, but pulling it in and getting it working from there is a breeze. They include the code examples that you'll need to follow along, showing how to create the object, what the object's "tree" of files looks like (recursively too!), and how to send the object off searching for a particular file as defined with a perl-compatible regular expression.