我正在尝试将目录的子目录的名称拉入数组 . 我尝试了一些不同的东西 . 我在这做错了什么?

我把这个小功能从php scandir() documentation page中拉了下来 .


$data_dir = 'path/to/data_directory/';

function dirToArray( $data_dir ) { 

   $result = array(); 

   $cdir = scandir( $data_dir );          // line 19
   foreach ($cdir as $key => $value) 
   { 
      if (!in_array($value,array(".",".."))) 
      { 
         if (is_dir($data_dir . DIRECTORY_SEPARATOR . $value)) 
         { 
            $result[$value] = dirToArray($data_dir . DIRECTORY_SEPARATOR . $value); 
         } 
         else 
         { 
            $result[] = $value; 
         } 
      } 
   } 

   return $result; 
}

$data_dir_array = dirToArray( $data_dir );

print_r( $data_dir_array );

ouput

警告:scandir(/ Users / alexcory / Library / Application \ Support / Alfred \ 2 / Workflow \ Data):无法打开dir:/ Users / alexcory / Library / Application Support / Alfred 2 / Alfred中没有这样的文件或目录 . 第19行的alfredpreferences / workflows / user.workflow.36DE4754-2C41-4A38-BA8A-FF48D97C6371 / open_data.php

警告:scandir():(错误2):/ Users / alexcory / Library / Application Support / Alfred 2 / Alfred.alfredpreferences / workflows / user.workflow.36DE4754-2C41-4A38-BA8A-FF48D97C6371 /中没有这样的文件或目录第19行的open_data.php

警告:在/ Users / alexcory / Library / Application Support / Alfred 2 / Alfred.alfredpreferences / workflows / user.workflow.36DE4754-2C41-4A38-BA8A-FF48D97C6371 / open_data.php第20行数组中为foreach()提供的参数无效()