我正在创建一个函数,使用递归方法仅搜索目录内和文件夹内的文件(如果有)。我需要列出所有与关键字匹配的文件。我列出了目录中的所有文件,并尝试将文件名与我的搜索键匹配,这就是我想搜索文件的方式,我不知道这是正确的方法,即使我可以列出文件但可以进行搜索部分不起作用,
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$key = trim($_POST['search']);
$path = BOOKROOT;
if (isset($key)) {
$books = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path));
$data = array();
foreach ($books as $book) {
if ($book->isDir()) {
continue;
}
if ($key == $book->getFilename()) {
$data[] = $book->getFilename();
}
}
// Load view
$this->view('books/searchpdf', $data);
}
}
答案 0 :(得分:0)
您可以在目录中搜索文件,例如:
<?php
foreach (glob("*.txt") as $filename) {
echo "$filename size " . filesize($filename) . "\n";
}
?>
答案 1 :(得分:0)
在将名称与关键字进行比较的行中,可以替换为
if(strpos($book->getFilename(), $key) !== false) {