PHP讀取(windows)文件夾并生成樹狀目錄

環境,windows10,xampp(php7),codeigniter4,zui.sexy

直接讀取文件夾并生成樹狀目錄方案

得益于php7對GBK中文目錄的支持,codeigniter的File Helper,zui.sexy的樹狀目錄,干這件事情只需要一個函數,就能得到全部目錄(包含子目錄)的Array:

directory_map()

前端用框架zui.sexy的方案;

直接讀取文件夾、生成樹狀目錄方案、帶文件夾選擇、文件下載

下方做的是有多個項目的文件夾,及查看每個項目的文件夾里面有什么文件夾、文件。

data
--20171015\
---- a.txt
---- b.txt
---- c.txt
--20171016\
---- a.txt
---- b.txt
---- c.txt
--20171017\
---- a.txt
---- b.txt
---- c.txt
--20171018\
---- a.txt
---- b.txt
---- c.txt

Controller中:

    public function project($project){
        $this->data["left_data"] = $this->get_all_projects();
        $this->data["url_floder"] = urldecode($project);
        $this->data["right_data"] = directory_map('data/' . urldecode($project));

        return view('welcome_message',$this->data);
    }

然后在view中作了判斷,是否顯示具體文件夾:

if(!is_array($right_data)){
    echo $right_data;
}else{
    $url_project = urldecode('http://127.0.0.1/data/' . $url_floder . '/');
    echo array2ul($url_project,$right_data);
}

調用了這個自定義函數:


function array2ul($path,$array,$ul_first_times=0,$ul_get_color=0) {

    if ($ul_first_times == 0){
        $out = '<ul class="tree tree-lines tree-folders" data-ride="tree" data-animate="true">';
    }else{
        $out = '<ul>';
    }

    foreach($array as $key => $elem){
        if(!is_array($elem)){
            $download_url = $path . $elem;
            $out .= '<li><a target="_blank" href="' . $download_url . '">' . $elem . '</a></li>';
        }else{
            $ul_first_times += 1;

            $ul_get_color = count(explode('\\', $path));

            $out .= '<li><a title="Level ' . $ul_get_color . ' Title"  href="#">' . $key . '</a>' . array2ul($path . $key,$elem,$ul_first_times,$ul_get_color) . "</li>";

            $file_path = './data/' . $key . 'readme.txt';

            if ($ul_get_color == 1 && is_file($file_path)){
                $out .= '<p>Thing!</p>';
            }else{
                $out .= $path . $key . 'readme.txt';
            };

        }
    }

    $out .= '</ul>';

    return $out; 
}

文章信息:
寫作日期:2017年10月18日
寫作地點:廣東·江門
寫作背景:想做類似于teambition的本地系統,但基于文件系統;后來放棄了,因為不方便做更新提醒及篩選。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容