如何使用PHP在文件夹中递归查找文件?

时间:2016-09-06 13:00:06

标签: php

如何在文件的子名称的文件夹中查找文件意味着需要搜索的文件没有完全命名,但它是名称的一部分,例如我想搜索文件' hello_world_123。 PNG&#39 ;.我没有输入文件的全名,只输入了一个或多个单词,例如“世界_”和“#39;是我的输入,但代码应搜索文件的全名。

简而言之,搜索可能就像操作系统在文件浏览器或文件管理器中搜索一样。

我的代码如下所示但我仍然坚持在if条件下匹配文件名。

$file_name_ = 'recursive-1.php';
$dir = new RecursiveDirectoryIterator( $folder_path, RecursiveDirectoryIterator::SKIP_DOTS);
$it = new RecursiveIteratorIterator($dir);  

foreach($it as $file) {     

    $file_info = pathinfo($file);       

    $patt = '/^(\w+)\.+('.$file_name_.')\.+(\w+)*$/';
    $result = preg_match($patt,strtolower( $file_info['basename'] ),$match );       
    if ( $result ) {    
        echo 'File found';
    } else {
         echo 'File not found';
    }
}

2 个答案:

答案 0 :(得分:0)

要以递归方式在目录中查找文件,无论是否有扩展名,以下代码都会有所帮助。 文件名不是完整名称(文件名的一部分),因此daystoptime函数将找到文件名的部分位置。

day_mon

答案 1 :(得分:-2)

你应该使用preg_match()。您可以查看文件夹中的文件是否包含您要搜索的文件的部分或全名。