在目录中按名称搜索特定文件

时间:2018-08-02 05:51:06

标签: php directory

我正在创建一个函数,使用递归方法仅搜索目录内和文件夹内的文件(如果有)。我需要列出所有与关键字匹配的文件。我列出了目录中的所有文件,并尝试将文件名与我的搜索键匹配,这就是我想搜索文件的方式,我不知道这是正确的方法,即使我可以列出文件但可以进行搜索部分不起作用,

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);
      }
}

2 个答案:

答案 0 :(得分:0)

您可以在目录中搜索文件,例如:

<?php
foreach (glob("*.txt") as $filename) {
    echo "$filename size " . filesize($filename) . "\n";
}
?>

答案 1 :(得分:0)

在将名称与关键字进行比较的行中,可以替换为

if(strpos($book->getFilename(), $key) !== false) {