2013-10-02 40 views
0

我正在使用dircetory_helper()列出所有目錄和文件。但是,當我將文件夾的權限更改爲0700(因此無法看到或訪問)時,它仍然出現在數組中。像這樣;codeigniter目錄映射助手 - 文件夾權限

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

回答

1

目前它顯示爲數組鍵,但是項目是什麼?它是NULL嗎?

它是一個空數組。 是布爾值(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); 
+0

這是一個問題,因爲代碼,然後解釋該文件夾中的文件。具體來說,它會把它當作一個沒有名字的文件!類似於文件'introduction.html'。當顯然目錄中沒有這樣的文件 – mikelovelyuk

+0

已更新的答案。 'directory_map'方法將做它將要做的事 - 沒辦法只用它來獲得你想要的東西。但是,您可以在發回之前修改'directory_map()的結果。 – stormdrain