搜索PDF文件

时间:2019-08-22 09:54:02

标签: php foreach glob readdir opendir

我有一个小问题,这是我的代码,用于列出文件夹和子文件夹中的所有文件;

if ($handle = opendir($dir)) {

$allFiles = array();

while (false !== ($entry = readdir($handle))) {
    if ($entry != "." && $entry != "..") {
        if (is_dir($dir . "/" . $entry)){
            $allFiles[] = "D: " . $dir . "/" . $entry;
        }else{
            $extension = strtoupper(pathinfo($entry, PATHINFO_EXTENSION));
            $fileNoExten = pathinfo($entry, PATHINFO_FILENAME);
            $directory = substr(str_replace('/', ' > ', $dir), $rootLenOnce + 3);
            $listagem .= '<tr>';
                $listagem .= "<td><a href='../" . $dir . "/" . $entry . "' ' target='_blank'>" . $entry . "</a></td>";
                //$listagem .= "<td><small>" . $directory . "</small></td>";
                $listagem .= "<td>" . $extension . "</td>";
                $listagem .= "<td><a class='download-cell' href='../".$dir ."/". $entry."' ' download> <i class='fa fa-download' ></i></a></td>";
                $listagem .= "<td class='display-none'>" . $fileNoExten . "</td>";
                $allFiles[] = "F: " . $dir . "/" . $entry;
            $listagem .= '</tr>';
            echo "<pre>"; print_r(glob("*.pdf")); echo "</pre>";
        }
    }
}
closedir($handle);

foreach($allFiles as $value){
    $displayName = substr($value, $rootLen + 4);
    $fileName    = substr($value, 3);
    $linkName    = str_replace(" ", "%20", substr($value, $pathLen + 3));
    if (is_dir($fileName)) {
        myScanDirPdf($fileName, $level + 1, strlen($fileName),$rootLenOnce);
     }
   }
 }
 return $listagem;
}

我需要过滤搜索结果,仅搜索.pdf文件。

有人可以帮助我!

谢谢!

我尝试使用glob函数,但效果不佳。

谢谢!

1 个答案:

答案 0 :(得分:0)

遍历每个文件时,可以使用

        if(stripos($fileName, ".pdf"))

希望这会有所帮助

在列出所有文件和子文件夹时,我还有一个建议。 您可以使用递归迭代器

$folderName = $_POST['folderName'];
$dir = new RecursiveDirectoryIterator($folderName);
$it  = new RecursiveIteratorIterator($dir);
foreach ($it as $fileinfo) {
    if ($fileinfo->isDir()) {
    }elseif ($fileinfo->isFile()) {
        $fileName = $fileinfo->getFileName();
        if(stripos($fileName, ".pdf")) {
        //do what you need to do 
        }
    }
}