簡體   English   中英

php-列出目錄中的文件夾和文件

[英]php - listing folders and files in a directory

嗨,我正在使用以下功能列出目錄中的所有文件和文件夾。

<?php

  function listFolderFiles($dir){

        $ffs = scandir($dir);

            foreach($ffs as $ff){

                echo $ff . "<br/>";

            }

    }

?>

但是問題似乎是我正在獲取目錄中的所有文件夾,但是我也正在獲取. 還有一個.. 類似於下面的內容。

.
..
direc
img
music
New Text Document.txt

我正在使用以下功能,如: listFolderFiles('MyFolder');

我想要做的是獲取所有文件夾和文件,但不獲取. .. ,我做錯了什么,我怎么能得到我想要的。 謝謝!

擺脫scandir()在Linux環境中出現的問題的簡單方法:

<?php
$ffs = array_diff(scandir($dir), array('..', '.'));
?>

您可以非常容易地使用glob,它將文件名放入數組中:

print_r(glob("*.*"));

例:

// directory name
$directory = "/";

// get in directory
$files = glob($directory . "*");

$d = 0; // init dir array count
$f = 0; // init file array count

// directories and files
foreach($files as $file) { 
    if(is_dir($file)) {
        array($l['directory'][$d] =  $file);
        $d++;
    } else {
        array($l['file'][$f] = $file);
        $f++;
    }
}

print_r($l);

注意scandir還將拾取諸如.htaccess隱藏文件。這就是為什么應該考慮使用glob方法的原因,除非您當然想要顯示它們。

這應該做!

<?php

function listFolderFiles($dir){
    $ffs = scandir($dir);
    foreach($ffs as &$ff){

        if ($ff != '.' && $ff != '..') {
            echo $ff . "<br/>";
        }
    }
}

?>

暫無
暫無

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

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