簡體   English   中英

為什么scandir()為目錄返回false?

[英]Why is scandir() returning false for directories?

我有一個名為client_images的目錄,其中dir_1dir_2dir_3作為子目錄。 當我運行以下內容時:

foreach(scandir("client_images") as $key => $value ){
    if(is_dir($value)){
        echo $value." is a dir.<br>";
    }
    else{
        echo $value." is not a dir.<br>";
    }
}

我得到:

 . is a dir. .. is a dir. dir_1 is not a dir. dir_2 is not a dir. dir_3 is not a dir. 

為什么php為目錄返回false?

你正在做scandir("client_images") ; 結果是沒有 client_images/ path的裸文件名,所以它在當前目錄中查找它們。 當然,唯一的目錄可能是共同的. client_images/. .. ,所有目錄中的條目。

您可以使用DirectoryIterators掃描目錄。 使用以下代碼檢查文件是否是目錄

$iterator = new DirectoryIterator('path');
foreach ($iterator as $fileinfo) {
    if ($fileinfo->isDir()) {
        echo $fileinfo->getFilename() . "\n";
    }
} 
$mydir = "client_images/";

foreach(scandir($mydir) as $key => $value ){
  if(is_dir($mydir . $value)){
    echo $value." is a dir.<br>";
    }
  else{
    echo $value." is not a dir.<br>";
    }
  }

暫無
暫無

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

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