簡體   English   中英

列出目錄及其子目錄中的所有.csv文件uisng PHP

[英]List all the .csv files from a directory and its subdirectories uisng PHP

我有一個上傳.csv文件的目錄。 結構是這樣的

MainFolder
  -User1Foder
       --User1File1.csv 
       --User1File2.csv
  -User2Folder
       --User2File1.csv
       --User2File2.csv

我正在尋找一個可以列出MainFolder中所有.csv文件的php函數。

listAllcsv(MainFolder);

產量

User1File1.csv
User1File2.csv
User2File1.csv
User2File2.csv

嘗試過的代碼

function listFolderFiles($dir){
    $ffs = scandir($dir);

    unset($ffs[array_search('.', $ffs, true)]);
    unset($ffs[array_search('..', $ffs, true)]);

    // prevent empty ordered elements
    if (count($ffs) < 1)
        return;

    echo '<ol>';
    foreach($ffs as $ff){
        echo '<li>'.$ff;
        if(is_dir($dir.'/'.$ff)) listFolderFiles($dir.'/'.$ff);
        echo '</li>';
    }
    echo '</ol>';
}

但是它也列出了所有子文件夾,我只查找文件而不是子文件夾。

先感謝您

您需要看一下Iterators

這個使用RecursiveDirectoryIterator示例將以一種簡潔的方式完成這項工作。

function listFolders($dir) {
    $directory = new RecursiveDirectoryIterator($dir);
    $directory->setFlags(RecursiveDirectoryIterator::SKIP_DOTS);

    $files = new RecursiveIteratorIterator(
        $directory,
        RecursiveIteratorIterator::SELF_FIRST
    );

    $list = [];
    foreach ($files as $file) {
        if (
            $file->isDir() == false &&
            $file->getExtension() === 'csv'
        ) {
            $list[] = $file->getBasename();
        }
    }

    return $list;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM