您可以使用SPL迭代器.特别是RecursiveDirectoryIterator它将以递归方式遍历给定的目录结构.
像这样:
$realpath = realpath('/path/to/file');
$fileObjects = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($realpath),
RecursiveIteratorIterator::SELF_FIRST);
foreach($fileObjects as $key => $object){
if($object->getFilename() === 'filename.png') {
echo $object->getPathname();
}
}
Run Code Online (Sandbox Code Playgroud)
该SELF_FIRST迭代模式基本上告诉迭代器父项目应先放置(父母来第一次).