我正在使用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 / key。我不希望它出现在数组中。目前它作为数组键出现,但项目是什么?它是NULL吗?
有解决方法吗?我正在使用codeigniter版本2.1.3
答案 0 :(得分:1)
目前它作为数组键出现,但项目是什么?它是NULL吗?
这是一个空数组。是boolean(false)。只要它没有显示内容,问题是什么?当您显示数组时,数组中没有任何内容,因此应显示它(也不是它的键)。
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);