如何在包含文件子名的文件夾中查找文件意味着需要搜索的文件沒有完全命名,但它是名稱的一部分,例如我想搜索文件'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功能 –