2015-10-13 80 views
3

我试图按字母顺序列出目录中的所有文件。在大多数情况下,我所做的工作,但在列表底部有一些奇怪的随机问题,它们混在一起。在codeigniter/php目录中列出文件

任何人都可以帮忙吗?

$files = directory_map('downloads/human_resources'); 

asort($files); 

foreach($files as $file){ 
    if(is_string($file)){ 
     echo $file[1]; 
    } 
} 
+1

你有什么输出?你能指望什么? – Emz

回答

3

您可以使用codeigniter的目录助手。要加载帮助程序,请使用$this->load->helper('directory');

并使用directory_map()函数读取第一个参数中指定的目录路径,并构建其及其所有包含文件的数组表示形式。例如:

$map = directory_map('./mydirectory/'); 

注意:路径几乎总是相对于您的主要index.php文件。

该目录内包含的子文件夹也将被映射。如果你想控制递归深度,你可以使用第二个参数(整数)。深度为1将只映射顶层目录:

$map = directory_map('./mydirectory/', 1); 

默认情况下,隐藏文件不会包含在返回的数组中。要覆盖此行为,你可以设置第三个参数为true(布尔):

$map = directory_map('./mydirectory/', FALSE, TRUE); 

每个文件夹的名称将是一个数组的索引,而它包含的文件将被数字索引。下面是一个典型阵列的例子:

Array 
(
    [libraries] => Array 
    (
     [0] => benchmark.html 
     [1] => config.html 
     [database] => Array 
     (
      [0] => active_record.html 
      [1] => binds.html 
      [2] => configuration.html 
      [3] => connecting.html 
      [4] => examples.html 
      [5] => fields.html 
      [6] => index.html 
      [7] => queries.html 
     ) 
     [2] => email.html 
     [3] => file_uploading.html 
     [4] => image_lib.html 
     [5] => input.html 
     [6] => language.html 
     [7] => loader.html 
     [8] => pagination.html 
     [9] => uri.html 
)