如何在包含文件子名的文件夹中查找文件意味着需要搜索的文件没有完全命名,但它是名称的一部分,例如我想搜索文件'hello_world_123.png'。我没有输入文件的全名,而只输入了一个或几个字,例如'world_'是我的输入,但代码应该搜索文件的全名。如何使用PHP在文件夹中递归地查找文件?
总之,搜索可能像操作系统在文件浏览器或文件管理器中的搜索一样工作。
我的代码如下,但我坚持匹配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:'recusive-1.php'不是'find-recursive-1-file.php'的子字符串。你应该更好地解释什么是“匹配”文件名的规则。 –
它已更改为'recursive-1.php'@CasimiretHippolyte – SCC
\ w不包含破折号字符。如果您只想检查是否存在,请尝试strpos功能 –