簡體   English   中英

scandir()-> 2個文件夾->顯示1個結果

[英]scandir() -> 2 folders -> show 1 result

大家好,

我想掃描2個不同文件夾的內容,並以1個列表/數組顯示結果。 那怎么可能?

此腳本適用於1個文件夾:

<?php
    $ordner = "images/";
    $alledateien = scandir($ordner);

    foreach ($alledateien as $datei) {
        $dateiinfo = pathinfo($ordner."/".$datei); 
        $size = ceil(filesize($ordner."/".$datei)/1024); 

        if ($datei != "." && $datei != ".."  && $datei != ".DS_Store") 
        { 
?>
            <?php echo $dateiinfo['filename']; ?><br>
<?php
        };
    };
?> 

我想意識到這樣的事情:

<?php
$ordner = "images/" AND "pdf/";
...

謝謝您的支持!
托馬斯

簡單技巧:

function getScanDir($firstFolder, $secondFolder)
{
    return array_merge(
        scandir($firstFolder),
        scandir($secondFolder)
    );
}

函數僅合並兩個數組(第一個和第二個文件夾的結果)並輸出一個數組。 由於scandir()輸出基本數組(數字鍵),因此不會丟失任何數據。

編輯

我忘記了輸出數組中的目錄名稱。 現在更復雜了。 在那里,我們可以使用另一個技巧:

function getScanDir($firstFolder, $secondFolder)
{
    return array_merge(
        createArrayDirectory($firstFolder),
        createArrayDirectory($secondFolder)
    );
}

function createArrayDirectory($folderName)
{
    return array_filter(scandir($folderName), function(&$value) use ($folderName) {
        return $folderName . '/' . $value;
    });
}

現在,您應該擁有一個數組,其中包含來自兩個不同目錄的文件和目錄。

嘗試使用數組:

<?php
    $ordners = ["images/", "pdf/"];

    foreach ($ordner as $order)
    {
        $alledateien = scandir($ordner);

        foreach ($alledateien as $datei) 
        {
            $dateiinfo = pathinfo($ordner."/".$datei); 
            $size = ceil(filesize($ordner."/".$datei)/1024); 

            if ($datei != "." && $datei != ".."  && $datei != ".DS_Store") 
                echo $dateiinfo['filename'].'<br>';
        }
    }
?> 

希望這可以幫助。

暫無
暫無

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

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