【问题标题】:codeigniter directory map helper - folder permissionscodeigniter 目录映射助手 - 文件夹权限
【发布时间】:2013-10-02 12:20:53
【问题描述】:

我正在使用 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/ 键。我不希望它出现在数组中。目前它显示为数组键,但该项目是什么?是NULL吗?

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

【问题讨论】:

    标签: php arrays codeigniter helper


    【解决方案1】:

    目前它显示为一个数组键,但它是什么项目?是NULL吗?

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

    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);
    

    【讨论】:

    • 这是一个问题,因为代码随后将该文件夹解释为一个文件。具体来说,它会将其视为没有名称的文件!类似于文件introduction.html。当目录中明显没有这样的文件时
    • 更新了答案。 directory_map 方法将做它要做的事情——没有办法只使用它来获得你想要的东西。但是,您可以在发回之前修改 directory_map() 的结果。
    猜你喜欢
    • 1970-01-01
    • 2018-09-06
    • 2022-12-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-01
    • 2013-07-11
    • 2018-12-10
    • 1970-01-01
    相关资源
    最近更新 更多