0

我正在使用 dircetory_helper() 列出所有目录和文件。但是,当我将文件夹的权限更改为 0700(因此无法看到或访问)时,它仍然出现在数组中。像这样;

Array
(
    [2001-07-01/] => Array
    (
        [0] => 1_july_2001.pdf
    )

    [0] => introduction.html

    [2009-05-01/] => 

    [2012-07-01/] => Array
    (
        [0] => 1_july_2012.pdf
        [1] => 1_july_2012.xls
    )

    [2013-01-01/] => Array
    (
        [0] => 1_january_2013.pdf
        [1] => key_points.html
        [2] => 1_january_2013.xls
    )
)

查看 2009-05-01/ 键。我不希望它出现在数组中。目前它显示为数组键,但该项目是什么?它是空的吗?

有解决办法吗?我正在使用 codeigniter 版本 2.1.3

4

1 回答 1

1

目前它显示为数组键,但该项目是什么?它是空的吗?

它是一个空数组。是布尔值(假)。只要它不显示内容,有什么问题?当您显示数组时,数组中没有任何内容,因此应该显示它(也不是键)。

if( count($array_item) == 0 )
{
    // dont show $array_item
}
else
{
    // $array_item with stuff in it; display
}

我认为没有办法在不更改父目录权限的情况下阻止密钥进入那里,这显然会阻止其余目录也被读取。通过将文件夹更改为0700,它可以通过不呈现目录的内容来按预期运行。

但是,您可以directory_map()在发回之前修改结果:

$this->load->helper('directory');

$map = directory_map('testdir');

$my_map = array();

foreach($map as $k => $v )
{
    // check that it's not an empty array and that it's not a file
    // in the root directory
    if($v and gettype($v) == 'array')
    {
        $my_map[$k] = $v;

    }
}

print_r($my_map);
于 2013-10-02T13:08:55.950 回答