我试图按字母顺序列出目录中的所有文件。在大多数情况下,我的工作是有效的,但是在列表的底部有一些奇怪的随机的混淆。
有人可以帮忙吗?
$files = directory_map('downloads/human_resources');
asort($files);
foreach($files as $file){
if(is_string($file)){
echo $file[1];
}
}
答案 0 :(得分:7)
您可以使用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
)